diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/utils/CollectionUtils.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/utils/CollectionUtils.java | 10 |
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) { |
