首页> Java> java教程> 正文

java8的stream怎么取max

WBOY
发布: 2023-05-14 15:43:12
转载
2437 人浏览过

java8的stream取max

public static void main(String[] args) { List 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)

maxmincount这些字眼你一定不陌生,没错,在mysql中我们常用它们进行数据统计。

Java stream中也引入了这些概念和用法,极大地方便了我们对集合、数组的数据统计工作。

java8的stream怎么取max

「案例一:获取String集合中最长的元素。」

public class StreamTest { public static void main(String[] args) { List list = Arrays.asList("adnm", "admmt", "pot", "xbangd", "weoujgsd"); Optional max = list.stream().max(Comparator.comparing(String::length)); System.out.println("最长的字符串:" + max.get()); } }
登录后复制

「案例二:获取Integer集合中的最大值。」

public class StreamTest { public static void main(String[] args) { List list = Arrays.asList(7, 6, 9, 4, 11, 6); // 自然排序 Optional max = list.stream().max(Integer::compareTo); // 自定义排序 Optional max2 = list.stream().max(new Comparator() { @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 personList = new ArrayList(); 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 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 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); } }
登录后复制

以上是java8的stream怎么取max的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:yisu.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!