From 0d45154019e42a0c9ddb7d72eebe151cd730d3cf Mon Sep 17 00:00:00 2001 From: Looly Date: Sat, 18 Oct 2025 19:54:38 +0800 Subject: [PATCH] add test --- .../hutool/v7/core/collection/CollUtil.java | 33 +++++++++++++++++-- .../hutool/v7/cron/pattern/CronPattern.java | 2 +- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/v7/core/collection/CollUtil.java b/hutool-core/src/main/java/cn/hutool/v7/core/collection/CollUtil.java index 0692dfd2d..85034e31c 100644 --- a/hutool-core/src/main/java/cn/hutool/v7/core/collection/CollUtil.java +++ b/hutool-core/src/main/java/cn/hutool/v7/core/collection/CollUtil.java @@ -1388,13 +1388,42 @@ public class CollUtil { final Iterator keyIterator = keys.iterator(); final Iterator valueIterator = values.iterator(); - while (entryCount > 0) { + while (entryCount-- > 0) { map.put(keyIterator.next(), valueIterator.next()); - entryCount--; } return map; } + + /** + * 将两个列表的元素按照索引一一配对,通过指定的函数进行合并,返回一个新的结果列表。 + * 新列表的长度将以两个输入列表中较短的那个为准。 + * + * @param 第一个列表的元素类型 + * @param 第二个列表的元素类型 + * @param 结果列表的元素类型 + * @param collectionA 第一个列表 + * @param collectionB 第二个列表 + * @param zipper 合并函数,接收来自listA和listB的两个元素,返回一个结果元素 + * @return 合并后的新列表 + * @since 5.8.42 + */ + public static List zip(Collection collectionA, Collection collectionB, BiFunction zipper) { + if (CollUtil.isEmpty(collectionA) || CollUtil.isEmpty(collectionB)) { + return new ArrayList<>(); + } + Assert.notNull(zipper, "Zipper function must not be null"); + + int size = Math.min(collectionA.size(), collectionB.size()); + final List result = new ArrayList<>(size); + final Iterator aIterator = collectionA.iterator(); + final Iterator bIterator = collectionB.iterator(); + + while(size-- > 0) { + result.add(zipper.apply(aIterator.next(), bIterator.next())); + } + return result; + } // endregion /** diff --git a/hutool-cron/src/main/java/cn/hutool/v7/cron/pattern/CronPattern.java b/hutool-cron/src/main/java/cn/hutool/v7/cron/pattern/CronPattern.java index 4a2b07721..0298c05db 100644 --- a/hutool-cron/src/main/java/cn/hutool/v7/cron/pattern/CronPattern.java +++ b/hutool-cron/src/main/java/cn/hutool/v7/cron/pattern/CronPattern.java @@ -138,7 +138,7 @@ public class CronPattern { * @param isMatchSecond 是否匹配秒 * @return 如果匹配返回 {@code true}, 否则返回 {@code false} */ - public boolean match(final Calendar calendar, final boolean isMatchSecond) { + public boolean match(final Calendar calendar, final boolean isMatchSecond) { return match(PatternUtil.getFields(calendar, isMatchSecond)); }