From d7fd2d916640e5ed9f0c6683ec4ababa4ab4386b Mon Sep 17 00:00:00 2001 From: "Tagir F. Valeev" Date: Thu, 18 Aug 2016 17:30:49 -0700 Subject: [PATCH] 8164189: Collectors.toSet() parallel performance improvement Reviewed-by: shade, psandoz --- .../share/classes/java/util/stream/Collectors.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/jdk/src/java.base/share/classes/java/util/stream/Collectors.java b/jdk/src/java.base/share/classes/java/util/stream/Collectors.java index da80728f255..018bb5fc1b6 100644 --- a/jdk/src/java.base/share/classes/java/util/stream/Collectors.java +++ b/jdk/src/java.base/share/classes/java/util/stream/Collectors.java @@ -295,7 +295,13 @@ public final class Collectors { public static Collector> toSet() { return new CollectorImpl<>((Supplier>) HashSet::new, Set::add, - (left, right) -> { left.addAll(right); return left; }, + (left, right) -> { + if (left.size() < right.size()) { + right.addAll(left); return right; + } else { + left.addAll(right); return left; + } + }, CH_UNORDERED_ID); }