JDK1.8 stream().filter()的用法

在jdk1.8以后,我们可以使用stream.filter过滤list中的数据,主要作用就是模拟sql查询,从集合中查询想要的数据,不用像之前一样遍历list再筛选。
 
实例:
public class Test {
    public static void main(String[] args) {
        List<Program> list = new ArrayList<Program>();


        Program p1 = new Program();
        p1.setId(1);
        p1.setName("项目1");
        p1.setStatus("0");
        list.add(p1);


        Program p2 = new Program();
        p2.setId(2);
        p2.setName("项目2");
        p2.setStatus("0");
        list.add(p2);


        Program p3 = new Program();
        p3.setId(3);
        p3.setName("项目3");
        p3.setStatus("1");
        list.add(p3);
        
        //从集合中查询状态为0的数据集合
        List<Program> programList = list.stream().filter(program -> ("0").equals(program.getStatus())).collect(Collectors.toList());
      
        //在集合中查询出第一个id为1的数据   返回数据类型为Optional
        Optional<Program> programList1 = list.stream().filter(program -> program.getId()==1).findFirst();

        //查询的数据不存在,返回值为option.empty
        Optional<Program> programList2 = list.stream().filter(program -> program.getId()==4).findFirst();
        System.out.println(programList);
        System.out.println(programList1);
        System.out.println(programList2);
    }
}

结果:

[Program(id=1, name=项目1, description=null, totalSize=0.0, version=0, createdAt=null, updatedAt=null, status=0, orgId=0, programSourceList=null), Program(id=2, name=项目2, description=null, totalSize=0.0, version=0, createdAt=null, updatedAt=null, status=0, orgId=0, programSourceList=null)]
Optional[Program(id=1, name=项目1, description=null, totalSize=0.0, version=0, createdAt=null, updatedAt=null, status=0, orgId=0, programSourceList=null)]
Optional.empty

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值