在实际的开发工作中,集合是我们非常常用的一种。
当我们想对集合内的对象加工时,你是不是首先想到了for循环?
其实在java8以后,引入的Stream流,同时搭配lambda的使用,可以支持一系列复杂的操作,使我们操作集合时更加方便的同时,也会使代码看起来更加简洁
假设我们有一个集合
List<Model> modelList=xxMapper.selectModelInfo();
我们可以借助Stream对modelList进行一系列操作
1.循环
modelList.Stream.map(model->{model.setName("mm");return model;
}).collect(Collectors.toList());
2.提取某个元素成新的集合
List<String> nameList=modelList.stream().map(
Model::getName).distinct().collect(Collectors.toList()
);
3.转成map
Map<String,Model> modelMap = modelList.stream().collect(
Collectors.toMap(Model::getName,model -> model,(s, s2) -> s2)
);
4.转成map并分组
Map<String, List<Model>> modelMap = modelList.stream().collect(
Collectors.groupingBy( Model::getName)
);
5.过滤
modelList=modelList.stream().filter(
item -> "xiaoMing".equals(item.getName())
).collect(Collectors.toList());
后续会持续完善~~~