From ab39b7410fc153568dc4c468339832a2139cb6f0 Mon Sep 17 00:00:00 2001 From: Zjp <1215582715@qq.com> Date: Thu, 10 Nov 2022 17:27:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=A0=E4=B8=AA=E5=B0=8F=E4=BC=98=E5=8C=96:?= =?UTF-8?q?=201.=E4=BC=98=E5=8C=96CollUtil.map()=E6=96=B9=E6=B3=95,=20?= =?UTF-8?q?=E5=87=8F=E5=B0=91=E6=B5=81=E4=B8=AD=E7=9A=84=E6=97=A0=E6=84=8F?= =?UTF-8?q?=E4=B9=89=E6=93=8D=E4=BD=9C;=202.=E4=BC=98=E5=8C=96ArrayUtil.ge?= =?UTF-8?q?t()=E6=96=B9=E6=B3=95,=20=E4=BD=BF=E7=94=A8=E5=90=88=E7=90=86?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91=E5=88=A4=E6=96=AD=20=E4=BB=A3?= =?UTF-8?q?=E6=9B=BF=20=E4=BD=BF=E7=94=A8=E5=BC=82=E5=B8=B8=E5=88=A4?= =?UTF-8?q?=E6=96=ADnull=E5=80=BC;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/core/collection/CollUtil.java | 13 +++++++++---- .../java/cn/hutool/core/collection/ListUtil.java | 2 +- .../main/java/cn/hutool/core/util/ArrayUtil.java | 9 ++++----- .../src/test/java/cn/hutool/core/map/GraphTest.java | 2 +- 4 files changed, 15 insertions(+), 11 deletions(-) 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 2a3a7ec1e..196393a4e 100755 --- a/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java @@ -1066,12 +1066,17 @@ public class CollUtil { * @since 5.3.5 */ public static List map(final Iterable collection, final Function mapper, final boolean ignoreNull) { + if (ignoreNull) { + return StreamUtil.of(collection) + // 检查映射前的结果 + .filter(Objects::nonNull) + .map(mapper) + // 检查映射后的结果 + .filter(Objects::nonNull) + .collect(Collectors.toList()); + } return StreamUtil.of(collection) - // 检查映射前的结果 - .filter((e) -> (false == ignoreNull) || null != e) .map(mapper) - // 检查映射后的结果 - .filter((e) -> (false == ignoreNull) || null != e) .collect(Collectors.toList()); } diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java index 10ac0d8b0..83c0165a6 100755 --- a/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java @@ -433,7 +433,7 @@ public class ListUtil { * @param element 新元素 * @param paddingElement 填充的值 * @return 原List - * @since 5。8.4 + * @since 5.8.4 */ public static List setOrPadding(final List list, final int index, final T element, final T paddingElement) { Assert.notNull(list, "List must be not null !"); diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java index 0df22861f..4475771a3 100755 --- a/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java @@ -1036,15 +1036,14 @@ public class ArrayUtil extends PrimitiveArrayUtil { if (null == array) { return null; } - + final int length = Array.getLength(array); if (index < 0) { - index += Array.getLength(array); + index += length; } - try { - return (T) Array.get(array, index); - } catch (final ArrayIndexOutOfBoundsException e) { + if (index < 0 || index >= length) { return null; } + return (T) Array.get(array, index); } /** diff --git a/hutool-core/src/test/java/cn/hutool/core/map/GraphTest.java b/hutool-core/src/test/java/cn/hutool/core/map/GraphTest.java index ae031c59f..0ebddb5f8 100644 --- a/hutool-core/src/test/java/cn/hutool/core/map/GraphTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/map/GraphTest.java @@ -147,7 +147,7 @@ public class GraphTest { Assert.assertEquals(asSet(2, 0), graph.getAdjacentPoints(3)); } - + @SafeVarargs private static Set asSet(T... ts) { return new LinkedHashSet<>(Arrays.asList(ts)); }