我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Stream流中的groupingBy分组操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Stream流中的groupingBy分组操作

 code:

//根据医院编号,查询医院所有科室信息 Department departmentQuery = new Department(); departmentQuery.setHoscode(hoscode); Example example = Example.of(departmentQuery); //所有科室列表 departmentList List departmentList = departmentRepository.findAll(example); //根据大科室编号 bigcode 分组,获取每个大科室里面下级子科室 Map> deparmentMap = departmentList.stream().collect(Collectors.groupingBy(Department::getBigcode));

partitioningBy:该函数只能返回两个集合  一个是false,一个是true

Map> part = personList.stream().collect(Collectors.partitioningBy(x -> x.getSalary() > 8000));
groupingBy:该函数返回每个分组下的所有集合数据
Map> group = personList.stream().collect(Collectors.groupingBy(Person::getSex));

4.附录所有代码 

 code:

package com.itheima.demo18_扩展字符串排序;import java.util.*;import java.util.stream.Collectors;public class Harbor {    public static void main(String[] args) {        List personList = new ArrayList();        personList.add(new Person("Tom", 8900, 28,"male", "New York"));        personList.add(new Person("Jack", 7000, 29,"male", "Washington"));        personList.add(new Person("Lily", 7800, 320,"female", "Washington"));        personList.add(new Person("Anni", 8200, 26,"female", "New York"));        personList.add(new Person("Owen", 9500, 27,"male", "New York"));        personList.add(new Person("Alisa", 7900, 29,"female", "New York"));        // 将员工按薪资是否高于8000分组        Map> part = personList.stream().collect(Collectors.partitioningBy(x -> x.getSalary() > 8000));        // 将员工按性别分组        Map> group = personList.stream().collect(Collectors.groupingBy(Person::getSex));        List female = group.get("female");        // 将员工先按性别分组,再按地区分组        Map>> group2 = personList.stream().collect(Collectors.groupingBy(Person::getSex, Collectors.groupingBy(Person::getArea)));        System.out.println("员工按薪资是否大于8000分组情况:" + part);        System.out.println("员工按性别分组情况:" + group);        System.out.println("员工按性别、地区:" + group2);    }}

6.javabean

package com.itheima.demo18_扩展字符串排序;import java.util.Objects;public class Person {    private String name; // 姓名    private int salary; // 薪资    private int age; // 年龄    private String sex; //性别    private String area; // 地区    public String getName() {        return name;    }    @Override    public boolean equals(Object o) {        if (this == o) return true;        if (o == null || getClass() != o.getClass()) return false;        Person person = (Person) o;        return salary == person.salary &&                age == person.age &&                Objects.equals(name, person.name) &&                Objects.equals(sex, person.sex) &&                Objects.equals(area, person.area);    }    @Override    public int hashCode() {        return Objects.hash(name, salary, age, sex, area);    }    @Override    public String toString() {        return "Person{" +                "name='" + name + '\'' +                ", salary=" + salary +                ", age=" + age +                ", sex='" + sex + '\'' +                ", area='" + area + '\'' +                '}';    }    public void setName(String name) {        this.name = name;    }    public int getSalary() {        return salary;    }    public void setSalary(int salary) {        this.salary = salary;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    public String getArea() {        return area;    }    public void setArea(String area) {        this.area = area;    }    // 构造方法    public Person(String name, int salary, int age,String sex,String area) {        this.name = name;        this.salary = salary;        this.age = age;        this.sex = sex;        this.area = area;    }}

 

来源地址:https://blog.csdn.net/weixin_61503139/article/details/126074858

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Stream流中的groupingBy分组操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java8中Stream API操作的示例分析

这篇文章主要介绍了Java8中Stream API操作的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.什么是StreamAPI?Java8中有两大最为重要的改变。
2023-06-25

Java集合Stream流操作的基本使用教程分享

流操作并不会影响原来的集合,可以简单认为,流操作是把集合中的一个元素逐个复制放到一个首尾相接的流动的水槽中。这篇文章整理了Stream流操作的基本使用,需要的可以参考一下
2023-02-21

java的Stream API终端操作示例分析

这篇文章主要介绍“java的Stream API终端操作示例分析”,在日常操作中,相信很多人在java的Stream API终端操作示例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java的Stream
2023-06-29

C++中IO流操作实例分析

这篇“C++中IO流操作实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++中IO流操作实例分析”文章吧。1.标准输
2023-07-02

Java中IO操作字节流与字符流的示例分析

这篇文章主要为大家展示了“Java中IO操作字节流与字符流的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中IO操作字节流与字符流的示例分析”这篇文章吧。IO操作字节流java.
2023-06-29

JAVA中IO操作的字节流和字符流实例分析

这篇文章主要介绍了JAVA中IO操作的字节流和字符流实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JAVA中IO操作的字节流和字符流实例分析文章都会有所收获,下面我们一起来看看吧。IO操作字节流java
2023-06-29

编程热搜

目录