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

本文介绍如何使用 Java 8 中的 Stream API 进行数据过滤操作。通过具体示例展示了如何从列表中筛选符合条件的数据,包括获取指定状态的记录及查找特定 ID 的首个元素等常见场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值