diff options
Diffstat (limited to 'guava/src/com/google/common/collect/DescendingImmutableSortedMultiset.java')
-rw-r--r-- | guava/src/com/google/common/collect/DescendingImmutableSortedMultiset.java | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/guava/src/com/google/common/collect/DescendingImmutableSortedMultiset.java b/guava/src/com/google/common/collect/DescendingImmutableSortedMultiset.java index d2d0088..f5630dd 100644 --- a/guava/src/com/google/common/collect/DescendingImmutableSortedMultiset.java +++ b/guava/src/com/google/common/collect/DescendingImmutableSortedMultiset.java @@ -1,11 +1,11 @@ /* * Copyright (C) 2011 The Guava Authors - * + * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under @@ -18,14 +18,14 @@ import javax.annotation.Nullable; /** * A descending wrapper around an {@code ImmutableSortedMultiset} - * + * * @author Louis Wasserman */ -@SuppressWarnings("serial") // uses writeReplace, not default serialization final class DescendingImmutableSortedMultiset<E> extends ImmutableSortedMultiset<E> { private final transient ImmutableSortedMultiset<E> forward; DescendingImmutableSortedMultiset(ImmutableSortedMultiset<E> forward) { + super(forward.reverseComparator()); this.forward = forward; } @@ -50,29 +50,18 @@ final class DescendingImmutableSortedMultiset<E> extends ImmutableSortedMultiset } @Override - public ImmutableSortedSet<E> elementSet() { - return forward.elementSet().descendingSet(); + ImmutableSortedSet<E> createElementSet() { + return forward.createDescendingElementSet(); } @Override - ImmutableSet<Entry<E>> createEntrySet() { - final ImmutableSet<Entry<E>> forwardEntrySet = forward.entrySet(); - return new EntrySet() { - @Override - public int size() { - return forwardEntrySet.size(); - } - - @Override - public UnmodifiableIterator<Entry<E>> iterator() { - return asList().iterator(); - } - - @Override - ImmutableList<Entry<E>> createAsList() { - return forwardEntrySet.asList().reverse(); - } - }; + ImmutableSortedSet<E> createDescendingElementSet() { + return forward.elementSet(); + } + + @Override + UnmodifiableIterator<Entry<E>> descendingEntryIterator() { + return forward.entryIterator(); } @Override @@ -91,6 +80,16 @@ final class DescendingImmutableSortedMultiset<E> extends ImmutableSortedMultiset } @Override + UnmodifiableIterator<Entry<E>> entryIterator() { + return forward.descendingEntryIterator(); + } + + @Override + int distinctElements() { + return forward.distinctElements(); + } + + @Override boolean isPartialView() { return forward.isPartialView(); } |