!152 添加自定义判断集合是否包含某类值的工具方法

Merge pull request !152 from Ease/feature/list
This commit is contained in:
Looly 2020-08-07 16:47:38 +08:00 committed by Gitee
commit 55942a9147
2 changed files with 28 additions and 0 deletions

View File

@ -50,6 +50,7 @@ import java.util.concurrent.BlockingQueue;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.function.Function;
import java.util.function.Predicate;
/**
* 集合相关工具类
@ -410,6 +411,26 @@ public class CollUtil {
return isNotEmpty(collection) && collection.contains(value);
}
/**
* 自定义函数判断集合是否包含某类值
*
* @param collection 集合
* @param containFunc 自定义判断函数
* @param <T> 值类型
* @return 是否包含自定义规则的值
*/
public static <T> boolean contains(Collection<T> collection, Predicate<? super T> containFunc) {
if (isEmpty(collection)) {
return false;
}
for (T t : collection) {
if (containFunc.test(t)) {
return true;
}
}
return false;
}
/**
* 其中一个集合在另一个集合中是否至少包含一个元素即是两个集合是否至少有一个共同的元素
*

View File

@ -19,6 +19,13 @@ import java.util.*;
*/
public class CollUtilTest {
@Test
public void testPredicateContains() {
ArrayList<String> list = CollUtil.newArrayList("bbbbb", "aaaaa", "ccccc");
Assert.assertTrue(CollUtil.contains(list, s -> s.startsWith("a")));
Assert.assertFalse(CollUtil.contains(list, s -> s.startsWith("d")));
}
@Test
public void testPadLeft() {
List<String> srcList = CollUtil.newArrayList();