aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/utils/CollectionUtils.java')
-rw-r--r--src/main/java/me/shedaniel/rei/utils/CollectionUtils.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java b/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java
index d47d732be..33f8ef457 100644
--- a/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java
+++ b/src/main/java/me/shedaniel/rei/utils/CollectionUtils.java
@@ -32,6 +32,8 @@ import net.fabricmc.api.Environment;
import java.util.*;
import java.util.function.Function;
import java.util.function.Predicate;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
public class CollectionUtils {
public static <A, B> List<B> getOrPutEmptyList(Map<A, List<B>> map, A key) {
@@ -157,6 +159,14 @@ public class CollectionUtils {
return l;
}
+ public static <T, R> List<R> mapParallel(Collection<T> list, Function<T, R> function) {
+ return list.parallelStream().map(function).collect(Collectors.toList());
+ }
+
+ public static <T, R, C extends Collection<R>> C mapParallel(Collection<T> list, Function<T, R> function, Supplier<C> supplier) {
+ return list.parallelStream().map(function).collect(Collectors.toCollection(supplier));
+ }
+
public static <T, R> List<R> map(T[] list, Function<T, R> function) {
List<R> l = new ArrayList<>(list.length + 1);
for (T t : list) {