欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2021-09-01 08:59:41|栏目:JAVA代码|点击:

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

package 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<Apple> appleList = new ArrayList<>();

    //常规写法
    Map<String, List<Apple>> AppMap = new HashMap<>();
    for (Apple apple : appleList) {
      if (apple.getWeight() > 150) { //如果重量大于150
        if (AppMap.get(apple.getColor()) == null) { //该颜色还没分类
          List<Apple> list = new ArrayList<>(); //新建该颜色的列表
          list.add(apple);//将苹果放进去列表
          AppMap.put(apple.getColor(),list);//将列表放到map中
        }else { //该颜色分类已存在
          AppMap.get(apple.getColor()).add(apple);//该颜色分类已存在,则直接放进去即可
        }
      }
    }

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



    //方式二 使用java8提供的流api实现 这种叫内部迭代
    Map<String, List<Apple>> AppMap2=appleList.stream().filter((Apple a)->a.getWeight()>150) //筛选出大于150的
        .collect(groupingBy(Apple::getColor)); //按颜色分组 最后得到map
    

  }


  class Apple {

    private String color;//颜色
    private 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;
    }
  }
}

上一篇:Servlet简单实现登录功能

栏    目:JAVA代码

下一篇:javacv视频抽帧的实现过程详解(附代码)

本文标题:java8使用流的filter来筛选数据的实现

本文地址:http://www.codeinn.net/misctech/171518.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有