@Override Iterator<Entry<K, V>> descendingEntryIterator() { return Iterators.filter(unfiltered.descendingMap().entrySet().iterator(), entryPredicate); }
@Override public NavigableMap<K, V> descendingMap() { UnmodifiableNavigableMap<K, V> result = descendingMap; return (result == null) ? descendingMap = new UnmodifiableNavigableMap<>(delegate.descendingMap(), this) : result; }
@Override public Set<Range<C>> asDescendingSetOfRanges() { Set<Range<C>> result = asDescendingSetOfRanges; return (result == null) ? asDescendingSetOfRanges = new AsRanges(rangesByLowerBound.descendingMap().values()) : result; }
@Override public NavigableMap<K, V> create(Object... entries) { NavigableMap<K, V> map = (NavigableMap<K, V>) delegate.create(entries); return map.descendingMap(); }
@Override public Entry<K, V> pollLastEntry() { return Iterables.removeFirstMatching(unfiltered.descendingMap().entrySet(), entryPredicate); }
@Override public NavigableMap<K, V> descendingMap() { return delegate().descendingMap(); }
@Override public Map<Range<K>, V> asDescendingMapOfRanges() { return new AsMapOfRanges(entriesByLowerBound.descendingMap().values()); }
@Override public NavigableMap<K, V> descendingMap() { return new SafeTreeMap<>(delegate.descendingMap()); }
@Override public NavigableMap<K, V> descendingMap() { return filterEntries(unfiltered.descendingMap(), entryPredicate); }
@CollectionSize.Require(SEVERAL) public void testDescendingNavigation() { List<Entry<K, V>> descending = new ArrayList<>(navigableMap.descendingMap().entrySet()); Collections.reverse(descending); assertEquals(entries, descending); }
@Override public NavigableMap<K, V> descendingMap() { UnmodifiableNavigableMap<K, V> result = descendingMap; return (result == null) ? descendingMap = new UnmodifiableNavigableMap<>(delegate.descendingMap(), this) : result; }
@Override public Set<Range<C>> asDescendingSetOfRanges() { Set<Range<C>> result = asDescendingSetOfRanges; return (result == null) ? asDescendingSetOfRanges = new AsRanges(rangesByLowerBound.descendingMap().values()) : result; }
@Override public NavigableMap<K, V> subMap( K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) { return forward().subMap(toKey, toInclusive, fromKey, fromInclusive).descendingMap(); }
@Override public NavigableMap<K, V> descendingMap() { synchronized (mutex) { if (descendingMap == null) { return descendingMap = navigableMap(delegate().descendingMap(), mutex); } return descendingMap; } }
@Override public NavigableMap<K, V> headMap(K toKey, boolean inclusive) { return forward().tailMap(toKey, inclusive).descendingMap(); }
@Override public NavigableMap<K, V2> descendingMap() { return transformEntries(fromMap().descendingMap(), transformer); }
@Override public NavigableMap<K, V> tailMap(K fromKey, boolean inclusive) { return forward().headMap(fromKey, inclusive).descendingMap(); }
@Override public NavigableMap<K, V> subMap( K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) { return forward().subMap(toKey, toInclusive, fromKey, fromInclusive).descendingMap(); }
@Override public NavigableMap<K, V> descendingMap() { assertTrue(Thread.holdsLock(mutex)); return delegate().descendingMap(); }
public void testDescendingMap() { NavigableMap<String, Integer> map = create(); NavigableMap<String, Integer> descendingMap = map.descendingMap(); assertTrue(descendingMap instanceof SynchronizedNavigableMap); assertSame(mutex, ((SynchronizedNavigableMap<String, Integer>) descendingMap).mutex); }