@Override public ValuesIterator create() { return new ValuesIterator(); }
/** * Iterate backwards w.r.t the buffer, to * minimize collision chains when filling another hash container (ex. with putAll()) */ @Override protected CharCursor fetch() { if (this.cursor.index == ByteCharHashMap.this.values.length + 1) { if (ByteCharHashMap.this.allocatedDefaultKey) { this.cursor.index = ByteCharHashMap.this.values.length; this.cursor.value = ByteCharHashMap.this.allocatedDefaultKeyValue; return this.cursor; } //no value associated with the default key, continue iteration... this.cursor.index = ByteCharHashMap.this.keys.length; } int i = this.cursor.index - 1; while (i >= 0 && !(!(((((ByteCharHashMap.this.keys)))[(i)]) == (byte)0))) { i--; } if (i == -1) { return done(); } this.cursor.index = i; this.cursor.value = ((ByteCharHashMap.this.values[i])); return this.cursor; } }