快捷查找list集合的某个元素 您所在的位置:网站首页 list如何取得某个元素 快捷查找list集合的某个元素

快捷查找list集合的某个元素

2023-06-18 01:34| 来源: 网络整理| 查看: 265

JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象,需要从集合中查找商品id是1的商品对象。用表达式来查询代码很简洁。最重要的是相对于遍历而言,提交了速度。

boolean b = mylist.stream().anyMatch(zfDict1 -> zfDict.getDictPid().equals(zfDict1.getDictId()));

stream()将集合转换为流

后面的方法就是java8 stream接口终端操作,常用的有 anyMatch,allMatch,noneMatch。还有一些其他方法,比如filter()等等。 anyMatch:判断的条件里,任意一个元素成功,返回true allMatch:判断条件里的元素,所有的都是,返回true noneMatch:与allMatch相反,判断条件里的元素,所有的都不是,返回true count方法,跟List接口中的 .size() 一样,返回的都是这个集合流的元素的长度,不同的是,流是集合的一个高级工厂,中间操作是工厂里的每一道工序,我们对这个流操作完成后,可以进行元素的数量的和;

而lambda表达式里面的就是判断条件

List list =new ArrayList(); QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("dict_type","CASE_CASETYPE"); if(key!=null && !"".equals(key.trim())){ wrapper.like("dict_name",key); } list = list(wrapper); //用来承装原集合,不能直接把list付给他,那样就相当于是一个指针,指向list,mylist何list都是一个集合 List mylist =new ArrayList(); mylist.addAll(list); for (ZfDict zfDict:list){ if (zfDict.getDictPid()=="0"||"0".equals(zfDict.getDictPid())){ continue; } boolean b = mylist.stream().anyMatch(zfDict1 -> zfDict.getDictPid().equals(zfDict1.getDictId())); if (!b){ ZfDict dict_id = getOne(new QueryWrapper().eq("dict_id", zfDict.getDictPid()).eq("dict_type","CASE_CASETYPE")); if (dict_id!=null){ mylist.add(dict_id); } } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有