你好杰米 2018-08-06 09:18 采纳率: 87.5%
浏览 1695
已采纳

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

如下

 List<User> cList;

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

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

我现在有个string是“小明”

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

  • 写回答

7条回答 默认 最新

  • 玄尺 2018-08-06 09:44
    关注
     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表达式

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 爱_LOVE 2018-08-06 09:25
    关注

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

    评论
  • Lei_Da_Gou 2018-08-06 09:26
    关注
    for(User user : cList) {
        if("小明'.equals(user.getName())) {
            Sysout("存在");braak;
        }
    }
    
    
    评论
  • hj804894744 2018-08-06 09:28
    关注

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

    评论
  • 张音乐 博客专家认证 2018-08-06 09:34
    关注
     li.parallelStream().forEach(p->{
                if(p.getName().equals("小明")){
                    return true;
                }
            });
    
    评论
  • NullPoint99999 2018-08-06 11:38
    关注

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

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

    评论
  • 蔴牛 2018-08-22 09:37
    关注

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

    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 关于#物联网#的问题:新大陆AIOT中,按照手册教程进行添加,设置完成后网关一直不上线,显示Never这是网络服务的信息
  • ¥15 这个要用一维热方程但是我不知道怎么运用这个公式
  • ¥15 OpenFOAM多孔介质传热模型建模
  • ¥15 QT 实现 RSTP 语音对讲功能
  • ¥50 AES魔改之后的安全性关于PRF(相关搜索:密码学)
  • ¥15 用C语言写的一个程序遇到了两个问题第一是偏移正确但读取不到坐标,第二个问题是自己定义的函数实现不了获取指定进程模块。
  • ¥15 在安装Anaconda时总是闪退怎么办?
  • ¥15 对图中电路进行以下几个方面的分析
  • ¥15 对图中电路进行以下几个方面的分析
  • ¥15 对图中电路进行以下几个方面的分析