前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JAVA8 List最大值最小值求和平均值以及排序

JAVA8 List最大值最小值求和平均值以及排序

原创
作者头像
用户1134008
修改于 2021-11-19 10:12:35
修改于 2021-11-19 10:12:35
2.3K1
举报
文章被收录于专栏:java 8java 8

1:对象类型获取最大值、最小值、平均数

代码语言:java
AI代码解释
复制
public static void main(String[] args) {
		List<User> uList=new ArrayList<User>();
		uList.add(new User(1, "xxx", 1, 18));
		uList.add(new User(2, "zzz", 1, 19));
		uList.add(new User(3, "aaa", 1, 20));
		uList.add(new User(4, "bbb", 1, 21));
		
		
		//最大年龄
		Integer maxAge=uList.stream().mapToInt(User::getAge).max().getAsInt();
		System.out.println("最大年龄为:"+maxAge);
		//最小年龄
		Integer minAge=uList.stream().mapToInt(User::getAge).min().getAsInt();
		System.out.println("最小年龄为:"+minAge);
		//年龄和
		Integer sumAge=uList.stream().mapToInt(User::getAge).sum();
		System.out.println("年龄和为:"+sumAge);
		//年龄平均值
		double avgAge=uList.stream().mapToDouble(User::getAge).average().getAsDouble();
		System.out.println("年龄平均值为:"+avgAge);
		
		double[] d={110.12,12.3,110.23,78.9};
		double minDouble=Arrays.stream(d).min().getAsDouble();
		System.out.println("最小数组值:"+minDouble);
		
		
	}

2:number类型获取最大值、最小值、平均数

代码语言:java
AI代码解释
复制
public static void main(String[] args) {
  List list  = new ArrayList();
   list.add(new Double(123.23));
   list.add(new Double(33.23));
   list.add(new Double(13.23));
   list.add(new Double(3.23));
   
   System.out.println(list);
   System.out.println("最大值: " + Collections.max(list));
   System.out.println("最小值: " + Collections.min(list));

   List<Integer> lists = list;
   DoubleSummaryStatistics statistics = lists.stream().mapToDouble(Number::doubleValue).summaryStatistics();
   
   System.out.println("最大值:" + statistics.getMax());
   System.out.println("最小值:" + statistics.getMin());
   System.out.println("平均值:" + statistics.getAverage());
   System.out.println("平均值四舍五入:" + Math.round(statistics.getAverage()));
   System.out.println("求和:" + statistics.getSum());
   System.out.println("计数:" + statistics.getCount());
   
 }

3:对对象类型数据的list做排序

代码语言:java
AI代码解释
复制


//测试数据,请不要纠结数据的严谨性
List<StudentInfo> studentList = new ArrayList<>();
studentList.add(new StudentInfo("李小明",true,18));
studentList.add(new StudentInfo("张小丽",false,21));
studentList.add(new StudentInfo("王大朋",true,19));
studentList.add(new StudentInfo("陈小跑",false,17));


//排序前输出
StudentInfo.printStudents(studentList);
//按年龄排序(Integer类型)   		使用年龄进行升序排序
List<StudentInfo> studentsSortName = studentList.stream().sorted(Comparator.comparing(StudentInfo::getAge)).collect(Collectors.toList());
//排序后输出
StudentInfo.printStudents(studentsSortName);



//排序前输出
StudentInfo.printStudents(studentList);
//按年龄排序(Integer类型)		使用年龄进行降序排序(使用reversed()方法)
List<StudentInfo> studentsSortName = studentList.stream().sorted(Comparator.comparing(StudentInfo::getAge).reversed()).collect(Collectors.toList());
//排序后输出
StudentInfo.printStudents(studentsSortName);



//排序前输出
StudentInfo.printStudents(studentList);
//按年龄排序(Integer类型)		使用年龄进行降序排序,年龄相同再使用身高升序排序
List<StudentInfo> studentsSortName = studentList.stream()
        .sorted(Comparator.comparing(StudentInfo::getAge).reversed().thenComparing(StudentInfo::getHeight))
        .collect(Collectors.toList());
//排序后输出
StudentInfo.printStudents(studentsSortName);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
6666666666666666666666666
6666666666666666666666666
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Java8 Stream,常用方法大合集
一、概述 二、分类 三、具体用法 1.流的常用创建方法 2.流的中间操作 3.流的终止操作
鱼找水需要时间
2023/02/16
4560
Java8 Stream,常用方法大合集
JAVA8新特性之List的各种用法(最大、最小、平均值、分组、求和、遍历、过滤、排序)
构建一个User实体类供演示 public class Users { /** * ID */ private Long id; /** * 用户名 */ private String name; /** * 年龄 */ private int age; /** * 工号 */ private String jobNumber; /** * 性别
Kevin_Zhang
2021/06/29
3.8K0
Stream 流解读
java.util.Stream 可以对元素列表进行一次或多次操作。Stream操作可以是中间值也可以是最终结果。最后的操作返回的是某种类型结果,而中间操作返回的是stream本身。因此你可以在一行代码链接多个方法调用。Streams被创建于java.util.Collection ,比如 list or set (map 并不支持)。Stream可以顺序执行,也可以并行执行。
微观技术
2020/08/20
7440
Java8之list.stream的常见使用
影响性能的五要素:数据大小、源数据结构、值是否装箱、可用的CPU数量以及处理每个元素所花的时间。
执笔记忆的空白
2020/12/24
2.7K0
Java8 Stream API
今天来分享一下Java8的Stream API,Stream API可以是我们的代码写起来更加整洁,丝滑,在对数据筛选,处理等方面有很好的帮助,下面我们通过一个简单的案例来看一下使用Stream API的强大之处。
小四的技术之旅
2022/07/26
4260
Java8中的新特性—流式编程
首先,在学习流式编程前,首先应当知道同样为Java8中新特性的lambda表达式,相信编程基础还不错的同学在python或其他语言中也了解过,这里我只贴出一篇学习博客: https://www.cnblogs.com/haixiang/p/11029639.html 里面的内容介绍了如何通过lambda对接口的实现来书写优美的代码。
崔笑颜
2020/06/08
1.2K0
工作后, 你一定不能错过技术之JDK1.8的新特性
而在企业开发中, 主要用到的便是Lambda表达式和Stream流 , 而在下面,我们便主要的去学习这两方面的知识
时间静止不是简史
2020/07/27
6310
Java8使用Stream实现List中对象属性的求和、最大、最小、平均值
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。
一个正经的程序员
2022/04/11
17.4K0
Java8 常用 API
Java8主要是在原来面向对象的基础上增加了函数式编程的能力。这样就出现了在Java中使用Lambda表达式,将一个函数作为方法的参数来进行传递。Java8的Stream就是典型的例子,Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。 一、Stream API filter 1、统计 long count = data.stream().filter(i -> i > 20).count(); 结果:5 2、过滤转换 List<Integer> list =
默存
2022/06/24
2.3K0
JAVA8之Lambda
java8最大的特性就是引入Lambda表达式,即函数式编程,可以将行为进行传递。总结就是:使用不可变值与函数,函数对不可变值进行处理,映射成另一个值。
用户4283147
2022/10/08
4700
JAVA8之Lambda
Java8 新特性 -- Lambda 表达式的常规用法
后两种可以这样理解:“::” 是方法引用操作符,传递的是方法的引用,在接口调用唯一方法的时候就是在调用传递进来的方法引用,所以在以上语法的基础上,只要保持返回值和参数完全一致就能将方法传递进去。
啵啵肠
2023/11/20
1440
List如何根据属性排序?快来get吧
今天来分享一下集合的排序,说道排序其实工作中有很多的应用场景,现在大家应该普遍都用Java8了吧!那么我还是从Java7和Java8两个版本去分享一下排序,莱茨狗。
一个程序员的成长
2020/11/25
9230
List如何根据属性排序?快来get吧
Java8新特性 stream流常用方法
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。
全栈程序员站长
2022/11/10
3160
Java8新特性 stream流常用方法
Java8 Steam流太难用了?那你可以试试 这个!
一个jvm层级的仿DataFrame工具,语意化和简化java8的stream流式处理工具
程序员蜗牛
2024/04/25
6910
Java8 Steam流太难用了?那你可以试试 这个!
Java中lambda表达式详解
上面的代码中,e是一个lambda的对象,根据java的继承的特性,我们可以说e对象的类型是继承自eat接口。而e1是一个正常的匿名类的对象.
付威
2018/12/05
4.8K0
Java中lambda表达式详解
Java8学习之Stream(流)
本文讲述.stream()的内容,需要一些Lambda表达式的基础,之前也推送过关于Lambda表达式和Stream的相关内容,就看哪盘菜味道更好!
用户5927304
2019/07/31
1.1K0
java8 stream多字段排序
list.stream().sorted(Comparator.comparing(类::属性一));
JQ实验室
2022/02/10
1K0
java 1.8 stream使用总结(个人总结有一些经典文章的集合)
☀️相关笔记章节: 🌹java 1.8 stream使用总结(个人总结有一些经典文章的集合) 🌹遍历 ArrayList和遍历 Map的几种方式 🌹Java对象,Map,List,Set数组等相互转换大全(详细讲解,附代码,讲解案例) 🌹List,Map多层循环嵌套Demo及其理解 🌹List,Map 三种遍历方式:(总结理解) 🌹List<Map<String, Object>>,Map<String,List<Map<String, Object>>>多方式循环遍历
默 语
2024/11/20
2150
java 1.8 stream使用总结(个人总结有一些经典文章的集合)
Java8使用Stream流实现List列表的查询、统计、排序、分组
Java8提供了Stream(流)处理集合的关键抽象概念,它可以对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。Stream API 借助于同样新出现的Lambda表达式,极大的提高编程效率和程序可读性。
全栈程序员站长
2022/11/08
11.3K0
Java8使用Stream流实现List列表的查询、统计、排序、分组
Java基础(二十六):Stream流及Optional类
ps:集合中数据为空,会抛异常No value present,后面会将Optional类的空值处理
Java微观世界
2025/01/20
2600
Java基础(二十六):Stream流及Optional类
相关推荐
Java8 Stream,常用方法大合集
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档