|
|
@@ -530,14 +530,19 @@ public abstract class AOpenMap<K,V> extends AMap<K, V> implements BlockMap<K, V>
|
|
|
|
|
|
private final class PEntry extends AEntry<K, V> {
|
|
|
|
|
|
- private final int index;
|
|
|
- private final K k;
|
|
|
+ private int index;
|
|
|
+ private K k;
|
|
|
private V v;
|
|
|
|
|
|
PEntry(int index) {
|
|
|
+ rebind(index);
|
|
|
+ }
|
|
|
+
|
|
|
+ public PEntry rebind(int index) {
|
|
|
this.index = index;
|
|
|
this.k = keys[index];
|
|
|
this.v = values[index];
|
|
|
+ return this;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -686,14 +691,11 @@ public abstract class AOpenMap<K,V> extends AMap<K, V> implements BlockMap<K, V>
|
|
|
|
|
|
private final class FastEntryIterator extends MapIterator implements Iterator<Entry<K, V>> {
|
|
|
|
|
|
- final BasicEntry<K, V> entry = new BasicEntry<>(null, null);
|
|
|
+ final PEntry entry = new PEntry(0);
|
|
|
|
|
|
@Override
|
|
|
- public BasicEntry<K, V> next() {
|
|
|
- int index = nextEntry();
|
|
|
- entry.key = keys[index];
|
|
|
- entry.value = values[index];
|
|
|
- return entry;
|
|
|
+ public Entry<K, V> next() {
|
|
|
+ return entry.rebind(nextEntry());
|
|
|
}
|
|
|
}
|
|
|
|