diff options
Diffstat (limited to 'dexlib2/src/main/java/com/android/tools/smali/util/CollectionUtils.java')
-rw-r--r-- | dexlib2/src/main/java/com/android/tools/smali/util/CollectionUtils.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/dexlib2/src/main/java/com/android/tools/smali/util/CollectionUtils.java b/dexlib2/src/main/java/com/android/tools/smali/util/CollectionUtils.java index 2fe222af..7883dcfa 100644 --- a/dexlib2/src/main/java/com/android/tools/smali/util/CollectionUtils.java +++ b/dexlib2/src/main/java/com/android/tools/smali/util/CollectionUtils.java @@ -30,14 +30,16 @@ package com.android.tools.smali.util; -import com.google.common.base.Predicate; -import com.google.common.collect.ImmutableSortedSet; +import com.android.tools.smali.util.ArraySortedSet; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; +import java.util.List; import java.util.SortedSet; +import java.util.function.Predicate; import javax.annotation.Nonnull; @@ -54,7 +56,7 @@ public class CollectionUtils { int index = 0; int lastMatchingIndex = -1; for (T item: iterable) { - if (predicate.apply(item)) { + if (predicate.test(item)) { lastMatchingIndex = index; } index++; @@ -177,7 +179,7 @@ public class CollectionUtils { } } - return ImmutableSortedSet.copyOf(elementComparator, collection); + return Collections.unmodifiableSortedSet(ArraySortedSet.of(elementComparator, collection)); } @Nonnull @@ -224,6 +226,13 @@ public class CollectionUtils { return 0; } + public static <T> List<T> immutableSortedCopy( + @Nonnull Collection<T> collection, @Nonnull Comparator<? super T> comparator) { + ArrayList<T> copy = new ArrayList<>(collection); + copy.sort(comparator); + return Collections.unmodifiableList(copy); + } + public static <T> Comparator<? super T> usingToStringOrdering() { return UsingToStringOrdering.INSTANCE; } |