aboutsummaryrefslogtreecommitdiff
path: root/RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-08-04 23:53:04 +0800
committershedaniel <daniel@shedaniel.me>2020-08-04 23:53:04 +0800
commit1ce5ca77bc2f98df6cc370c96547c2c39c1fd897 (patch)
tree3d4e86a09eb58f5669ce004628addf72136b9ac7 /RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java
parentf4a31a563e7fae66ae63179ea0926c2c15e494c1 (diff)
downloadRoughlyEnoughItems-1ce5ca77bc2f98df6cc370c96547c2c39c1fd897.tar.gz
RoughlyEnoughItems-1ce5ca77bc2f98df6cc370c96547c2c39c1fd897.tar.bz2
RoughlyEnoughItems-1ce5ca77bc2f98df6cc370c96547c2c39c1fd897.zip
limit the size
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java')
-rw-r--r--RoughlyEnoughItems-api/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java17
1 files changed, 5 insertions, 12 deletions
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 <A, B> List<B> getOrPutEmptyList(Map<A, List<B>> map, A key) {
@@ -178,33 +179,25 @@ public class CollectionUtils {
public static <T, R> Optional<R> mapAndMax(List<T> list, Function<T, R> function, Comparator<R> comparator) {
if (list.isEmpty())
return Optional.empty();
- List<R> 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 <T, R> Optional<R> mapAndMax(T[] list, Function<T, R> function, Comparator<R> comparator) {
if (list.length <= 0)
return Optional.empty();
- List<R> 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 <T> Optional<T> max(List<T> list, Comparator<T> comparator) {
if (list.isEmpty())
return Optional.empty();
- ArrayList<T> ts = new ArrayList<>(list);
- ts.sort(comparator);
- return Optional.ofNullable(ts.get(ts.size() - 1));
+ return list.stream().max(comparator);
}
public static <T> Optional<T> max(T[] list, Comparator<T> 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<String> list, String separator) {