From 1ce5ca77bc2f98df6cc370c96547c2c39c1fd897 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 4 Aug 2020 23:53:04 +0800 Subject: limit the size Signed-off-by: shedaniel --- .../java/me/shedaniel/rei/utils/CollectionUtils.java | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'RoughlyEnoughItems-api/src/main/java') diff --git a/RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java b/RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java index 33f8ef457..7e46a05f6 100644 --- a/RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java +++ b/RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java @@ -34,6 +34,7 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; import java.util.stream.Collectors; +import java.util.stream.Stream; public class CollectionUtils { public static List getOrPutEmptyList(Map> map, A key) { @@ -178,33 +179,25 @@ public class CollectionUtils { public static Optional mapAndMax(List list, Function function, Comparator comparator) { if (list.isEmpty()) return Optional.empty(); - List copyOf = CollectionUtils.map(list, function); - copyOf.sort(comparator); - return Optional.ofNullable(copyOf.get(copyOf.size() - 1)); + return list.stream().max(Comparator.comparing(function, comparator)).map(function); } public static Optional mapAndMax(T[] list, Function function, Comparator comparator) { if (list.length <= 0) return Optional.empty(); - List copyOf = CollectionUtils.map(list, function); - copyOf.sort(comparator); - return Optional.ofNullable(copyOf.get(copyOf.size() - 1)); + return Stream.of(list).max(Comparator.comparing(function, comparator)).map(function); } public static Optional max(List list, Comparator comparator) { if (list.isEmpty()) return Optional.empty(); - ArrayList ts = new ArrayList<>(list); - ts.sort(comparator); - return Optional.ofNullable(ts.get(ts.size() - 1)); + return list.stream().max(comparator); } public static Optional max(T[] list, Comparator comparator) { if (list.length <= 0) return Optional.empty(); - T[] copyOf = list.clone(); - Arrays.sort(copyOf, comparator); - return Optional.ofNullable(copyOf[copyOf.length - 1]); + return Stream.of(list).max(comparator); } public static String joinToString(List list, String separator) { -- cgit