From 0d6af9f854bf9745679e44641c3bd0830b374091 Mon Sep 17 00:00:00 2001 From: wangyongsheng Date: Fri, 10 Dec 2021 13:02:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(collection/CollUtil.java):=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=BB=99=E5=AE=9A=E7=9A=84map=E5=B0=86=E9=9B=86?= =?UTF-8?q?=E5=90=88=E4=B8=AD=E7=9A=84=E5=85=83=E7=B4=A0=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E6=88=96=E8=80=85=E5=AF=B9=E8=B1=A1=E5=80=BC?= =?UTF-8?q?=E7=9A=84=E9=87=8D=E6=96=B0=E8=AE=BE=E5=AE=9A[]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/core/collection/CollUtil.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java index 94f4d357c..05189b4b0 100644 --- a/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java @@ -42,6 +42,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.NavigableSet; import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.SortedSet; import java.util.Stack; @@ -51,6 +52,7 @@ import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.LinkedBlockingDeque; +import java.util.function.BiConsumer; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; @@ -2926,6 +2928,18 @@ public class CollUtil { public static Collection trans(Collection collection, Function function) { return new TransCollection<>(collection, function); } + + /** + * 使用给定的map将集合中的原素进行属性或者值的重新设定 + * @param collection 集合 + * @param map 映射集 + * @param keyGenerate 映射键生成函数 + * @param biConsumer 封装映射到的值函数 + * @author nick_wys + */ + public static void setValueByMap(Collection collection, Map map, Function keyGenerate, BiConsumer biConsumer) { + collection.forEach(x -> Optional.ofNullable(map.get(keyGenerate.apply(x))).ifPresent(y -> biConsumer.accept(x, y))); + } // ---------------------------------------------------------------------------------------------- Interface start