From c55a37bc522f0996862017031ff0322756f7b0a6 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 15 Jul 2020 12:12:28 +0800 Subject: Performance improvements to search filtering thanks to multithreading. Fix the drag state issue when deleting items. Signed-off-by: shedaniel --- src/main/java/me/shedaniel/rei/utils/CollectionUtils.java | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/main/java/me/shedaniel/rei/utils/CollectionUtils.java') 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 List getOrPutEmptyList(Map> map, A key) { @@ -157,6 +159,14 @@ public class CollectionUtils { return l; } + public static List mapParallel(Collection list, Function function) { + return list.parallelStream().map(function).collect(Collectors.toList()); + } + + public static > C mapParallel(Collection list, Function function, Supplier supplier) { + return list.parallelStream().map(function).collect(Collectors.toCollection(supplier)); + } + public static List map(T[] list, Function function) { List l = new ArrayList<>(list.length + 1); for (T t : list) { -- cgit