java8 stream().map().collect()用法

本文介绍了如何使用Java 8的Stream API简洁地从用户集合中获取身份证号码,通过stream().map().collect()方法实现了集合操作的简化。此外,还展示了如何根据商品编码查询商品类型并进行分类,利用map()方法提取属性和filter()方法进行条件筛选。
摘要由CSDN通过智能技术生成

有一个集合:

List users = getList(); //从数据库查询的用户集合

现在想获取User的身份证号码;在后续的逻辑处理中要用;

常用的方法我们大家都知道,用for循环,

List idcards=new ArrayList();//定义一个集合来装身份证号码

for(int i=0;i<users.size();i++){
  idcards.add(users.get(i).getIdcard());

}

这种方法要写好几行代码,有没有简单点的,有,java8 API能一行搞定:

List idcards= users.stream().map(User::getIdcard).collect(Collectors.toList())

解释下一这行代码:

users:一个实体类的集合,类型为List
User:实体类
getIdcard:实体类中的get方法,为获取User的idcard

stream()优点

无存储。stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。
为函数式编程而生。对stream的任何修改都不会修改背后的数据源,比如对stream执行过滤操作并不会删除被过滤的元素,而是会产生一个不包含被过滤元素的新stream。
惰式执行。stream上的操作并不会立即执行,只有等到用户真正需要结果的时候才会执行。
可消费性。stream只能被“消费”一次,一旦遍历过就会失效,就像容器的迭代器那样,想要再次遍历必须重新生成。
stream().map()方法的使用示例:

 //根据商品名称查询商品编码
            List<Product> product = atomOrdersMapper.findProduct(custId, productName);
            //获取商品编码
            List<String> collect = product.stream().map(Product::getProductNo).collect(Collectors.toList());

            JSONArray resultInfoList = new JSONArray();
            List<String> issueCollect = new ArrayList<>();
            List<String> queryCollect = new ArrayList<>();
            for (String productNo : collect) {
                //获取商品类型
                Product productInfo = atomOrdersMapper.findProductType(productNo);
                String productTypeName = productInfo.getProductTypeName();
                if ("API".equals(productTypeName)) {
                    issueCollect.add(productNo);
                } else {
                    queryCollect.add(productNo);
                }
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值