关于stream流遍历的用法

本文展示了如何使用Java Stream API对List和HashMap进行操作,包括通过Stream流获取List中对象的特定属性并去重,以及根据属性筛选元素并构建新的HashMap。示例代码详细解释了filter、map和collect等方法的用法。

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

 List<SlocPlant> all = slocPlantMapper.getAll();
 HashMap<String, List<String>> map = new HashMap<>();
 //通过Stream流 map是内是得到遍历的对象下的每个属性
 Set<String> collect = all.stream()
         .map(s -> s.getPlant())     //就是遍历得到每一个plant属性
         .collect(Collectors.toSet());//然后放到一个set列表中(去重)

 for (String s : collect) {
     List<String> slocs = all.stream()
             .filter(sloc -> s.equals(sloc.getPlant()))//filter是筛选出符合的条件,相当于if(s.equals(sloc.getPlant())
             .map(sp -> sp.getSloc())   //将得到的sloc属性全部放到list中
             .collect(Collectors.toList());
     map.put(s,slocs);
 }

 //==========上面内容同下=============
 HashSet<String> collect = new HashSet<>();
 all.forEach(x->{
     collect.add(x.getPlant());
 });


 for(String s : collect ){
 List<String> list = new ArrayList<>();
     all.forEach(x->{
         if(s.equals(x.getPlant())){
             list.add(x.getSloc());
         }
     });
     map.put(s,list);
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值