java8使用流的filter来筛选数据的实现

网友投稿 280 2022-10-31


java8使用流的filter来筛选数据的实现

本文主要介绍了java8使用流的filter来筛选数据的实现,分享给大家,具体如下:

packgtwsdHBAage chapter1;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import static java.util.stream.Collectors.groupingBy;

public class stream {

//比如说 你需要在一个列表中 筛选出所以重量大于150的苹果,然后按照颜色分组

//按常规的筛选写法 就是在循环里面 迭代筛选

public static void main(String[] args) {

List appleList = new ArrayList<>();

//常规写法

Map> AppMap = new HashMap<>();

for (Apple apple : appleList) {

if (apple.getWeight() > 150) { //如果重量大于150

if (AppMap.get(apple.getColor()) == null) { //该颜色还没分类

List list = new ArrayList<>(); //新建该颜色的列表

list.add(apple);//将苹果放进去列表

AppMap.put(apple.getColor(),list);//将列表放到map中

}else { //该颜色分类已存在

AppMap.get(apple.getColor()).add(apple);//该颜色分类已存在,则直接放进去即可

}

}

}

//如上方式 就可以筛选出来所有的150克大小以上的苹果,并按颜色分类

//方式二 使用java8提供的流api实现 这种叫内部迭代

Map> AppMap2=appleList.stream().filter((Apple a)->a.getWeight()>150) //筛选出大于150的

.collect(groupingBy(Apple::getColor)); //按颜色分组 最后得到map

}

class Apple {

private String color;//颜色

prgtwsdHBAivate Integer weight; //重量

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

public Integer getWeight() {

return weight;

}

public void setWeight(Integer weight) {

this.weight = weight;

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:讲述Sagit.Framework解决:双向引用导致的IOS内存泄漏(上)
下一篇:Taurus.MVC 2.3 开源发布:增强属性Require验证功能,自带WebAPI文档生成功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~