目录
方法实践说明一、前提条件二、操作总结方法
● maxBy:获取流中最大元素;minBy:获取流中最小元素
【资料图】
● joining:合并,将流中的元素,以字符串的形式拼接起来
● summingInt:把流中的元素映射成int类型的元素,求和
● averagingInt:把流中的元素映射成int类型的元素,求平均值
● summarizingInt:把流中的元素映射成int类型的元素,获取描述信息
实践说明
一、前提条件
Person类
package com.example; import lombok.AllArgsConstructor; import lombok.Data; import org.springframework.context.annotation.Configuration; import java.util.Objects; /** * @BelongsProject: StreamOperate * @BelongsPackage: com.example * @CreateTime: 2023-05-01 11:18 * @Description: Person实体类 * @Version: 1.0 */ public class Person implements Comparable{ public String getName() { return name; } public Person setName(String name) { this.name = name; return this; } public int getAge() { return age; } public Person setAge(int age) { this.age = age; return this; } public int getScore() { return score; } public Person setScore(int score) { this.score = score; return this; } private String name; private int age; private int score; public Person(String name, int age, int score) { this.name = name; this.age = age; this.score = score; } public Person() { } @Override public String toString() { return "Person{" + "name="" + name + "\"" + ", age=" + age + ", score=" + score + "}"; } @Override public boolean equals(Object o) { //地址相同,为true if (this == o) return true; //为null,并且类型不一样,为false if (o == null || getClass() != o.getClass()) return false; //向下转型,再去比较属性值 Person person = (Person) o; //如果属性值相同,最后的结果为true return age == person.age && score == person.score && Objects.equals(name, person.name); //return false; } @Override public int hashCode() { return Objects.hash(name, age, score); } @Override public int compareTo(Person o) { return this.getScore()-o.getScore(); } }
Data类
package com.example; import org.springframework.context.annotation.Configuration; import java.util.ArrayList; /** * @BelongsProject: StreamOperate * @BelongsPackage: com.example * @CreateTime: 2023-05-01 11:08 * @Description: Data类 * @Version: 1.0 */ public class Data { public static ArrayListgetData() { ArrayList personList = new ArrayList<>(); personList.add(new Person("张三", 18, 90)); personList.add(new Person("李四", 19, 100)); personList.add(new Person("王五", 17, 60)); personList.add(new Person("赵六", 18, 89)); personList.add(new Person("孙七", 20, 96)); personList.add(new Person("郑十", 20, 46)); personList.add(new Person("周八", 20, 96)); personList.add(new Person("周八", 20, 96)); personList.add(new Person("吴九", 20, 45)); personList.add(new Person("邓十一", 20, 35)); personList.add(new Person("刘十二", 20, 99)); personList.add(new Person("小十三", 20, 56)); personList.add(new Person("小十三", 20, 56)); return personList; } }
二、操作
maxBy:获取流中最大元素;minBy:获取流中最小元素
public static void main(String[] args) { Streamstream = Data.getData().stream(); //maxBy:获取流中最大元素;minBy:获取流中最小元素 System.out.println(Data.getData().stream().collect(Collectors.maxBy((ele1, ele2) -> ele1.getScore() - ele2.getScore()))); System.out.println(Data.getData().stream().collect(Collectors.minBy((ele1, ele2) -> ele1.getAge() - ele2.getAge()))); }
joining:合并,将流中的元素,以字符串的形式拼接起来
public static void main(String[] args) { Streamstream = Data.getData().stream(); //joining:合并,将流中的元素,以字符串的形式拼接起来 //将集合中person对象的姓名拼接成一个字符串 System.out.println(Data.getData().stream().map(Person::getName).collect(Collectors.joining())); System.out.println(Data.getData().stream().map(Person::getName).collect(Collectors.joining("-"))); System.out.println(Data.getData().stream().map(Person::getName).collect(Collectors.joining("-", "{", "}"))); }
summingInt:把流中的元素映射成int类型的元素,求和
public static void main(String[] args) { Streamstream = Data.getData().stream(); //summingInt:把流中的元素映射成int类型的元素,求和 System.out.println(Data.getData().stream().collect(Collectors.summingInt(Person::getScore))); }
averagingInt:把流中的元素映射成int类型的元素,求平均值
public static void main(String[] args) { Streamstream = Data.getData().stream(); //averagingInt:把流中的元素映射成int类型的元素,求平均值 System.out.println(Data.getData().stream().collect(Collectors.averagingInt(Person::getScore))); }
summarizingInt:把流中的元素映射成int类型的元素,获取描述信息
需求:将流中分数大于等于80的Person对象替换成他们的姓名
public static void main(String[] args) { Streamstream = Data.getData().stream(); //summarizingInt:把流中的元素映射成int类型的元素,获取描述信息 IntSummaryStatistics collect = Data.getData().stream().collect(Collectors.summarizingInt(Person::getScore)); System.out.println(collect); System.out.println(collect.getCount()); System.out.println(collect.getSum()); System.out.println(collect.getMax()); System.out.println(collect.getMax()); System.out.println(collect.getAverage());
输出结果:
总结
到此这篇关于Java流式操作之Collectors工具类操作的文章就介绍到这了,更多相关Java流式操作Collectors工具类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
上一篇:北京同仁堂有什么好处(北京同仁堂有什么区别) 环球报资讯
下一篇:最后一页
X 关闭
- 1、Java流式操作之Collectors工具类操作指南_全球热闻
- 2、北京同仁堂有什么好处(北京同仁堂有什么区别) 环球报资讯
- 3、全球球精选!计提的坏账准备会体现在哪个报表_计提的 ldquo 坏账准备 rdquo 计入什么科目
- 4、零经验领域,8天涨粉1750,赞藏数超3万
- 5、今日关注:抖音淘宝联盟怎么加入(抖音淘宝联盟怎么开通)
- 6、希腊闽商总商会举行换届典礼 陈千枝先生连任第二届会长
- 7、世界速递!“五一”安逸游四川︱成都天府艺术公园
- 8、天天热点评!北京冰球公开赛落幕 外省市球队“增量提质”
- 9、一成年男子与未成年女子发生关系 发生关系时环境封闭女子无法呼
- 10、微视频|你是星火-新动态
-
每日速讯:太平洋医疗保险一年多少钱?多久生效?
可靠。 太平洋人寿保险有限公司是一家知名的保险公司,在市场上享有良好的声誉。太平洋医疗保险的可靠性还
-
世界最资讯丨公墓出纳员把自己收款码贴上窗口,被查后还牵出上司……
以案为鉴|斩断伸向群众“身后事”的黑手“我现在追悔莫及,如果自己没有利欲熏心,就不会走到今天这个地
-
当前时讯:两位新任副省级市委书记的首次调研
4月底,东北两座副省级城市迎来新任市委书记:4月28日,中共中央批准:张恩惠同志任吉林省长春市委书记。4
-
三友化工:2022年归母净利同比下降40.83% 拟10派1.46元 今日视点
三友化工4月13日公告,2022年营收236 80亿元,同比增长2 15%;归母净利9 89亿元,同比下降40 83%;基本每股
-
假期“收尾”,雨水即将“上岗”!明晚起,青岛全市将迎中到大雨并伴有雷电
今天是“五一”假期的第四天了,假期进入“收尾”阶段,一轮风雨天气却刚刚“启程”,即将在返程最后时段和
-
古诗五字四句 五字四句的古诗
今天来聊聊关于古诗五字四句,五字四句的古诗的文章,现在就为大家来简单介绍下古诗五字四句,五字四句的古
-
寡人之于国也通假字古今异义 寡人之于国也通假字
今天来聊聊关于寡人之于国也通假字古今异义,寡人之于国也通假字的文章,现在就为大家来简单介绍下寡人之于
-
阿森纳3-1切尔西赛后 厄德高声称英超冠军之争尚未结束 环球快播报
阿森纳队长马丁-厄德高警告曼城,阿森纳将为英超联赛冠军 "战斗到底 "。阿森纳3-1切尔西赛后周二,厄德高在
-
洪欣深夜发布离婚声明,毕滢解释争执,张丹峰被批评评论区
洪欣在微博上发布了三条信息,用了半个小时的时间,但她指出这些信息被“某人”不断删除,这引起了不少网友
-
每日热门:武汉大学吴平的简介_吴平的人物简介
1、吴平,出生于湖北省黄冈。2、1972年至1979年就读于黄冈中学。3、1979年9月考入武汉大学图书馆学系学习。4、