【Java】有什么简便的写法,快速找到当前实体列表是否包含某个值?

如下

 List<User> cList;

User类中有个name属性和code属性

假设list中有100个不同的对象

我现在有个string是“小明”

怎么简便的写,来判断list中是否有对象的name属性是“小明”

 List<String> data = Lists.newArrayList("a", "b", "c");
 System.out.println(Sets.newHashSet(data).contains("a"));
 System.out.println(CollectionUtils.containsAny(data, "a"));
 System.out.println(data.stream().anyMatch("a"::equalsIgnoreCase));

给出三种方式:
1、使用guava工具类
2、使用common-collection工具类
3、使用java8中的lamda表达式

只有把list遍历一下才能判断,在遍历时判断是否存在“小明”

for(User user : cList) {
    if("小明'.equals(user.getName())) {
        Sysout("存在");braak;
    }
}

boolean exist = cList.stream().anyMatch(user->user.getName().equals("小明"));

 li.parallelStream().forEach(p->{
            if(p.getName().equals("小明")){
                return true;
            }
        });

这个就要看你实际的容器对象是否是有序的,如ArrayList就是无序的、TreeMap、TreeSet就是有序;HashMap、HashSet等也是有序的(利用哈希算法进行特殊排序,这两个的容器用于查找某一个元素效率是非常高的,在没有冲突的情况下只需要查找一次),如果是无序,那只有一个一个遍历。
当然除了jdk提供的,你也可以自己一个实现容器。

注:如果业务场景是需要快速找到元素,且不会与其他业务产生冲突,建议使用HashMap、HashSet。

用list.contains判断,重写user 的 hashcode 和 equals 方法,以name判断,然后
新建一个“小明”对象,直接用 list.contains 判断。