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 e6ef5f69d..a5cbfa0fa 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 @@ -667,6 +667,36 @@ public class CollUtil { return currentAlaDatas; } + /** + * 是否至少有一个符合判断条件 + * + * @param 集合元素类型 + * @param collection 集合 + * @param predicate 自定义判断函数 + * @return 是否有一个值匹配 布尔值 + */ + public static boolean anyMatch(Collection collection,Predicate predicate){ + if(isEmpty(collection)){ + return Boolean.FALSE; + } + return collection.stream().anyMatch(predicate); + } + + /** + * 是否全部匹配判断条件 + * + * @param 集合元素类型 + * @param collection 集合 + * @param predicate 自定义判断函数 + * @return 是否全部匹配 布尔值 + */ + public static boolean allMatch(Collection collection,Predicate predicate){ + if(isEmpty(collection)){ + return Boolean.FALSE; + } + return collection.stream().allMatch(predicate); + } + // ----------------------------------------------------------------------------------------------- new HashSet /** diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java index 8160a2a74..ac869e273 100755 --- a/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java @@ -1057,4 +1057,13 @@ public class CollUtilTest { final Object first = CollUtil.getFirst(nullList); Assert.assertNull(first); } + + @Test + public void testMatch() { + List list = Arrays.asList(1, 2, 3, 4, 5, 6); + Assert.assertTrue(CollUtil.anyMatch(list, i -> i == 1)); + Assert.assertFalse(CollUtil.anyMatch(list, i -> i > 6)); + Assert.assertFalse(CollUtil.allMatch(list, i -> i == 1)); + Assert.assertTrue(CollUtil.allMatch(list, i -> i <= 6)); + } }