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

如下

 List<User> cList;

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

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

我现在有个string是“小明”

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

7个回答

 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表达式

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

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

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

qq_43961619
七加一i 回复我是不是有点东西: 改成StringUtils.equals(),不就可以了
大约 2 个月之前 回复
zhaoxuyang1997
z8g
一年多之前 回复
sinat_34344123
lvgo 很骚
一年多之前 回复
qq_37162677
我是不是有点东西 你这样写user.getName()为空时不会报错吗
一年多之前 回复
hj804894744
hj804894744 回复qq_41906761: 一切为了积分QWQ
一年多之前 回复
qq_41906761
人到中年就秃头 这个表达式是在秀操作,
一年多之前 回复

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

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

3
根据java实体拼接可被gson解析的json字符串
4
java 代码性能出现问题如何快速定位到时哪个函数导致?
2
javascript怎么创建对象?js的对象和java有什么不同?
2
java实体类里的LocalDateTime怎么设置返回前端的时候值是时间戳?
5
java中char类型的默认值到底是什么?
1
java语言写代码实现“读取sqlserver备份文件bak中的多备份集列表并可选择性还原”怎么做?
2
springboot 项目使用mongotemplate 查询mongo数据库,查询字段和Java实体bean不匹配。
0
Java栈和列表的使用,拜托了
3
请问哪位大佬知道在哪儿可以下到java的api文档呀,中文版的最好
2
java 数据库表字段动态新增、修改,实体类怎么处理?
1
java的面向流和面向缓冲区
2
同一个实体类,作为两个接口的参数,使用swagger可以显示不一样的参数列表吗?
1
新手关于Java语言语法及环境变量的疑问
3
运行报错,大佬们帮忙看看什么原因java.util.concurrent.ExecutionException
4
Java的NullPointerException是什么,我如何修复它?
1
自动任务启动时报错ExceptionInInitializerError J9VMInternals.java:134
3
Mybatis生成的实体类和Mapper.java类报错
2
运行Java程序时报错Error:(3001, 19) java: ncCommonSvc.AsyncClient.microprobe_call不是抽象的
5
Exception in thread "Thread-12" java.lang.RuntimeException: java.lang.NullPointerException
5
Java并发编程之美 、 Java并发编程的艺术 、实战Java高并发程序设计 这三本书哪本好一点