01: package it.unimi.dsi.fastutil;
02:
03: /*
04: * fastutil: Fast & compact type-specific collections for Java
05: *
06: * Copyright (C) 2002-2008 Sebastiano Vigna
07: *
08: * This library is free software; you can redistribute it and/or
09: * modify it under the terms of the GNU Lesser General Public
10: * License as published by the Free Software Foundation; either
11: * version 2.1 of the License, or (at your option) any later version.
12: *
13: * This library is distributed in the hope that it will be useful,
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16: * Lesser General Public License for more details.
17: *
18: * You should have received a copy of the GNU Lesser General Public
19: * License along with this library; if not, write to the Free Software
20: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21: *
22: */
23:
24: import java.util.Iterator;
25: import java.util.ListIterator;
26:
27: /** A bidirectional {@link Iterator}.
28: *
29: * <P>This kind of iterator is essentially a {@link ListIterator} that
30: * does not support {@link ListIterator#previousIndex()} and {@link
31: * ListIterator#nextIndex()}. It is useful for those maps that can easily
32: * provide bidirectional iteration, but provide no index.
33: *
34: * <P>Note that iterators returned by <code>fastutil</code> classes are more
35: * specific, and support skipping. This class serves the purpose of organising
36: * in a cleaner way the relationships between various iterators.
37: *
38: * @see Iterator
39: * @see ListIterator
40: */
41:
42: public interface BidirectionalIterator<K> extends Iterator<K> {
43:
44: /** Returns the previous element from the collection.
45: *
46: * @return the previous element from the collection.
47: * @see java.util.ListIterator#previous()
48: */
49:
50: K previous();
51:
52: /** Returns whether there is a previous element.
53: *
54: * @return whether there is a previous element.
55: * @see java.util.ListIterator#hasPrevious()
56: */
57:
58: boolean hasPrevious();
59: }
|