java8的stream如何取max
作者:qq_20009015 时间:2023-09-06 19:08:37
java8的stream取max
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
Integer max = list.stream().max((a, b) -> {
if (a > b) {
return 1;
} else return -1;
}).get();
System.out.println(max);
}
注意点:这里判断大小是通过正负数和0值。 而不是直接写成
if (a > b) {
return a;
} else return b;
可以简化写法
int max = list.stream().max((a, b) -> a > b ? 1 : -1).get();
java8 stream详解~聚合(max/min/count)
max
、min
、count
这些字眼你一定不陌生,没错,在mysql中我们常用它们进行数据统计。
Java stream中也引入了这些概念和用法,极大地方便了我们对集合、数组的数据统计工作。
「案例一:获取String集合中最长的元素。」
public class StreamTest {
public static void main(String[] args) {
List<String> list = Arrays.asList("adnm", "admmt", "pot", "xbangd", "weoujgsd");
Optional<String> max = list.stream().max(Comparator.comparing(String::length));
System.out.println("最长的字符串:" + max.get());
}
}
「案例二:获取Integer集合中的最大值。」
public class StreamTest {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(7, 6, 9, 4, 11, 6);
// 自然排序
Optional<Integer> max = list.stream().max(Integer::compareTo);
// 自定义排序
Optional<Integer> max2 = list.stream().max(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
System.out.println("自然排序的最大值:" + max.get());
System.out.println("自定义排序的最大值:" + max2.get());
}
}
「案例三:获取员工工资最高的人。」
public class StreamTest {
public static void main(String[] args) {
List<Person> personList = new ArrayList<Person>();
personList.add(new Person("Tom", 8900, 23, "male", "New York"));
personList.add(new Person("Jack", 7000, 25, "male", "Washington"));
personList.add(new Person("Lily", 7800, 21, "female", "Washington"));
personList.add(new Person("Anni", 8200, 24, "female", "New York"));
personList.add(new Person("Owen", 9500, 25, "male", "New York"));
personList.add(new Person("Alisa", 7900, 26, "female", "New York"));
Optional<Person> max = personList.stream().max(Comparator.comparingInt(Person::getSalary));
System.out.println("员工工资最大值:" + max.get().getSalary());
}
}
「案例四:计算Integer集合中大于6的元素的个数。」
import java.util.Arrays;
import java.util.List;
public class StreamTest {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(7, 6, 4, 8, 2, 11, 9);
long count = list.stream().filter(x -> x > 6).count();
System.out.println("list中大于6的元素个数:" + count);
}
}
来源:https://laixiaoxing.blog.csdn.net/article/details/90634905
标签:java8,stream,max
0
投稿
猜你喜欢
C#探秘系列(一)——ToDictionary,ToLookup
2023-04-19 09:16:15
Android悬浮对话框(即点即关对话框)实现代码
2023-01-01 04:53:54
Kotlin select使用方法介绍
2022-05-28 19:34:27
C#程序调用cmd.exe执行命令
2022-11-14 04:04:50
2021最新Android笔试题总结美团Android岗职能要求
2023-11-29 15:24:52
SpringBoot微信消息接口配置详解
2023-08-23 09:51:21
基于TabLayout中的Tab间隔设置方法(实例讲解)
2023-12-05 06:56:10
Java多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask详解
2023-01-31 14:08:39
SpringBoot的DeferredResult案例:DeferredResult的超时处理方式
2023-08-09 14:00:58
Java AtomicInteger类的使用方法详解
2023-03-09 00:57:57
java 基础之final、finally和finalize的区别
2023-08-01 04:44:49
从此不再惧怕URI编码 JavaScript及C# URI编码详解
2022-11-03 00:17:46
Android自定义边缘凹凸的卡劵效果
2023-03-16 09:58:46
SpringBoot设置静态资源访问控制和封装集成方案
2021-08-23 19:08:44
C#实现多线程的Web代理服务器实例
2022-02-25 13:32:08
Jackson 反序列化时实现大小写不敏感设置
2021-11-18 06:17:18
spring-cloud入门之eureka-client(服务注册)
2023-12-16 22:42:51
Idea中maven项目实现登录验证码功能
2023-11-29 16:50:51
C#利用缓存分块读写大文件
2022-10-20 11:18:22
Java里的static import使用小结
2023-08-18 18:36:36