@Override public SortedMap<K, V> tailMap(final K fromKey) { final SortedMap<K, V> sub = ((SortedMap<K, V>) normalMap).tailMap(fromKey); return new ViewMap<>(this, sub); }
@Override public boolean containsValue(final Object value) { // override as default implementation uses reverseMap return decorated().normalMap.containsValue(value); }
@Override public void clear() { // override as default implementation uses reverseMap for (final Iterator<K> it = keySet().iterator(); it.hasNext();) { it.next(); it.remove(); } }
@Override public K previousKey(final K key) { return decorated().previousKey(key); }
@Override public SortedMap<K, V> headMap(final K toKey) { final SortedMap<K, V> sub = ((SortedMap<K, V>) normalMap).headMap(toKey); return new ViewMap<>(this, sub); }
@Override public K nextKey(final K key) { return decorated().nextKey(key); } }
@Override public SortedMap<K, V> subMap(final K fromKey, final K toKey) { final SortedMap<K, V> sub = ((SortedMap<K, V>) normalMap).subMap(fromKey, toKey); return new ViewMap<>(this, sub); }