java8的stream如何取max

这篇文章主要介绍了java8的stream如何取max问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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中也引入了这些概念和用法,极大地方便了我们对集合、数组的数据统计工作。

「案例一:获取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); } }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持0133技术站。

以上就是java8的stream如何取max的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java