You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a memory optimization for the case when a user required to
modify iterator by moving it to a desire position. This works the same
way as `iteraotr(fromElement)` but doesn't create a new iterator that
decreases memory footprint at an algorithms which makes a lot of jumps.
So, user simple calls `move(fromElement)`.
It also introduces `begin()` which moves iterator to the first position,
and `end()` which moves iterator to the last element.
/** An abstract class providing basic methods for sorted maps implementing a type-specific interface. */
@@ -84,10 +84,10 @@ public abstract class ABSTRACT_SORTED_MAP KEY_VALUE_GENERIC extends ABSTRACT_MAP
84
84
public SORTED_SET KEY_GENERIC subSet(final KEY_GENERIC_TYPE from, final KEY_GENERIC_TYPE to) { return subMap(from, to).keySet(); }
85
85
86
86
@Override
87
-
public KEY_BIDI_ITERATOR KEY_GENERIC iterator(final KEY_GENERIC_TYPE from) { return new KeySetIterator KEY_VALUE_GENERIC_DIAMOND(ENTRYSET().iterator(new BasicEntry KEY_VALUE_GENERIC_DIAMOND(from, VALUE_NULL))); }
87
+
public KEY_MOVE_BIDI_ITERATOR KEY_GENERIC iterator(final KEY_GENERIC_TYPE from) { return new KeySetIterator KEY_VALUE_GENERIC_DIAMOND(ENTRYSET().iterator(new BasicEntry KEY_VALUE_GENERIC_DIAMOND(from, VALUE_NULL))); }
88
88
89
89
@Override
90
-
public KEY_BIDI_ITERATOR KEY_GENERIC iterator() { return new KeySetIterator KEY_VALUE_GENERIC_DIAMOND(SORTED_MAPS.fastIterator(ABSTRACT_SORTED_MAP.this)); }
90
+
public KEY_MOVE_BIDI_ITERATOR KEY_GENERIC iterator() { return new KeySetIterator KEY_VALUE_GENERIC_DIAMOND(SORTED_MAPS.fastIterator(ABSTRACT_SORTED_MAP.this)); }
91
91
}
92
92
93
93
/** A wrapper exhibiting a map iterator as an iterator on keys.
@@ -96,10 +96,10 @@ public abstract class ABSTRACT_SORTED_MAP KEY_VALUE_GENERIC extends ABSTRACT_MAP
96
96
* class using the corresponding iterator on entries.
97
97
*/
98
98
99
-
protected static class KeySetIterator KEY_VALUE_GENERIC implements KEY_BIDI_ITERATOR KEY_GENERIC {
100
-
protected final ObjectBidirectionalIterator<MAP.Entry KEY_VALUE_GENERIC> i;
99
+
protected static class KeySetIterator KEY_VALUE_GENERIC implements KEY_MOVE_BIDI_ITERATOR KEY_GENERIC {
100
+
protected final ObjectMovableBidirectionalIterator<MAP.Entry KEY_VALUE_GENERIC> i;
101
101
102
-
public KeySetIterator(ObjectBidirectionalIterator<MAP.Entry KEY_VALUE_GENERIC> i) {
102
+
public KeySetIterator(ObjectMovableBidirectionalIterator<MAP.Entry KEY_VALUE_GENERIC> i) {
103
103
this.i = i;
104
104
}
105
105
@@ -114,6 +114,15 @@ public abstract class ABSTRACT_SORTED_MAP KEY_VALUE_GENERIC extends ABSTRACT_MAP
114
114
115
115
@Override
116
116
public boolean hasPrevious() { return i.hasPrevious(); }
0 commit comments