protected MapEntry<K, V> findEntry(K key) { int hash = key.hashCode(); return findEntry(key, entries.bucket(hash)); }
public void put(long key, T value) { bucket(key).add(value); }
@Override public boolean remove(String key) { assert key.length() >= 1; long hash = hash(key); SimpleBucket<MapEntry<byte[], T>> bucket = this.entries.bucket(hash); if (bucket == null) { return false; } for (int i = 0; i < bucket.size(); i++) { MapEntry<byte[], T> route = bucket.get(i); if (new String(route.key).equals(key)) { bucket.delete(i); return true; } } return false; }
@Override public T get(Buf buf, BufRange key) { long hash = hash(buf.bytes(), key); SimpleBucket<MapEntry<byte[], T>> candidates = entries.bucket(hash); if (candidates != null) { for (int i = 0; i < candidates.size(); i++) { MapEntry<byte[], T> route = candidates.get(i); if (BytesUtil.matches(buf.bytes(), key, route.key, true)) { return route.value; } } } return defaultValue; }
public SimpleList<T> get(long key) { int index = index(key); return bucket(index); }
protected void clearBucket(int index) { bucket(index).clear(); }
@Override public boolean remove(String key) { assert key.length() >= 1; long hash = hash(key); SimpleBucket<MapEntry<byte[], T>> bucket = this.entries.bucket(hash); if (bucket == null) { return false; } for (int i = 0; i < bucket.size(); i++) { MapEntry<byte[], T> route = bucket.get(i); if (new String(route.key).equals(key)) { bucket.delete(i); return true; } } return false; }
@Override public T get(Buf buf, BufRange key) { long hash = hash(buf.bytes(), key); SimpleBucket<MapEntry<byte[], T>> candidates = entries.bucket(hash); if (candidates != null) { for (int i = 0; i < candidates.size(); i++) { MapEntry<byte[], T> route = candidates.get(i); if (BytesUtil.matches(buf.bytes(), key, route.key, true)) { return route.value; } } } return defaultValue; }