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 1ac34b6bb..32e17888e 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 @@ -363,7 +363,7 @@ public class CollUtil { * 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c]
* 结果:[a, b, c],此结果中只保留了一个c * - * @param 集合元素类型 + * @param 集合元素类型 * @param colls 集合列表 * @return 交集的集合,返回 {@link LinkedHashSet} * @since 5.3.9 @@ -1078,13 +1078,16 @@ public class CollUtil { * @since 5.3.5 */ public static List map(final Iterable collection, final Function mapper, final boolean ignoreNull) { - return StreamUtil.of(collection) - // 检查映射前的结果 - .filter((e) -> (false == ignoreNull) || null != e) - .map(mapper) - // 检查映射后的结果 - .filter((e) -> (false == ignoreNull) || null != e) - .collect(Collectors.toList()); + if (ignoreNull) { + return StreamUtil.of(collection) + // 检查映射前的结果 + .filter(Objects::nonNull) + .map(mapper) + // 检查映射后的结果 + .filter(Objects::nonNull) + .collect(Collectors.toList()); + } + return StreamUtil.of(collection).map(mapper).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..7f9d93147 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 @@ -1028,7 +1028,7 @@ public class ArrayUtil extends PrimitiveArrayUtil { * @param 数组元素类型 * @param array 数组对象 * @param index 下标,支持负数 - * @return 值 + * @return 值,越界返回null * @since 4.0.6 */ @SuppressWarnings("unchecked") @@ -1037,14 +1037,14 @@ public class ArrayUtil extends PrimitiveArrayUtil { 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..758d3e5eb 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 @@ -15,7 +15,7 @@ public class GraphTest { @Test public void testPutEdge() { - Graph graph = new Graph<>(); + final Graph graph = new Graph<>(); graph.putEdge(0, 1); graph.putEdge(1, 2); graph.putEdge(2, 0); @@ -30,7 +30,7 @@ public class GraphTest { // 0 -- 1 // | | // 3 -- 2 - Graph graph = new Graph<>(); + final Graph graph = new Graph<>(); graph.putEdge(0, 1); graph.putEdge(1, 2); graph.putEdge(2, 3); @@ -53,7 +53,7 @@ public class GraphTest { @Test public void removeEdge() { - Graph graph = new Graph<>(); + final Graph graph = new Graph<>(); graph.putEdge(0, 1); Assert.assertTrue(graph.containsEdge(0, 1)); @@ -66,7 +66,7 @@ public class GraphTest { // 0 -- 1 // | | // 3 -- 2 - Graph graph = new Graph<>(); + final Graph graph = new Graph<>(); graph.putEdge(0, 1); graph.putEdge(1, 2); graph.putEdge(2, 3); @@ -87,7 +87,7 @@ public class GraphTest { // 0 -- 1 // | | // 3 -- 2 - Graph graph = new Graph<>(); + final Graph graph = new Graph<>(); graph.putEdge(0, 1); graph.putEdge(1, 2); graph.putEdge(2, 3); @@ -113,7 +113,7 @@ public class GraphTest { // 0 -- 1 // | | // 3 -- 2 - Graph graph = new Graph<>(); + final Graph graph = new Graph<>(); graph.putEdge(0, 1); graph.putEdge(1, 2); graph.putEdge(2, 3); @@ -130,7 +130,7 @@ public class GraphTest { // 0 -- 1 // | | // 3 -- 2 - Graph graph = new Graph<>(); + final Graph graph = new Graph<>(); graph.putEdge(0, 1); graph.putEdge(1, 2); graph.putEdge(2, 3); @@ -147,8 +147,8 @@ public class GraphTest { Assert.assertEquals(asSet(2, 0), graph.getAdjacentPoints(3)); } - - private static Set asSet(T... ts) { + @SafeVarargs + private static Set asSet(final T... ts) { return new LinkedHashSet<>(Arrays.asList(ts)); }