@Override public boolean containsKey(long k) { return findIndex(k) >= 0; }
@Override public T get(long k) { int idx = findIndex(k); if (idx >= 0) { return data.get(idx); } else { return null; } }
@Override @SuppressWarnings("unchecked") public boolean containsValue(Object v) { if (v == null) { return false; } long key; try { key = extractor.getKey((T) v); } catch (ClassCastException ex) { return false; } int idx = findIndex(key); return idx >= 0 && data.get(idx).equals(v); }
@Override public KeyedObjectMap<T> tailMap(long l) { int start = findIndex(l); start = BinarySearch.resultToIndex(start); return new KeyedObjectMap<>(data.subList(start, data.size()), extractor, true); }
@Override public KeyedObjectMap<T> headMap(long l) { int stop = findIndex(l); stop = BinarySearch.resultToIndex(stop); return new KeyedObjectMap<>(data.subList(0, stop), extractor, true); }
@Override public boolean containsKey(long k) { return findIndex(k) >= 0; }
@Override public T get(long k) { int idx = findIndex(k); if (idx >= 0) { return data.get(idx); } else { return null; } }
@Override @SuppressWarnings("unchecked") public boolean containsValue(Object v) { if (v == null) { return false; } long key; try { key = extractor.getKey((T) v); } catch (ClassCastException ex) { return false; } int idx = findIndex(key); return idx >= 0 && data.get(idx).equals(v); }
@Override public KeyedObjectMap<T> tailMap(long l) { int start = findIndex(l); start = BinarySearch.resultToIndex(start); return new KeyedObjectMap<>(data.subList(start, data.size()), extractor, true); }
@Override public KeyedObjectMap<T> headMap(long l) { int stop = findIndex(l); stop = BinarySearch.resultToIndex(stop); return new KeyedObjectMap<>(data.subList(0, stop), extractor, true); }