aboutsummaryrefslogtreecommitdiff
path: root/dexlib2/src/main/java/com/android/tools/smali/util/CollectionUtils.java
diff options
context:
space:
mode:
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.java17
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;
}