您好,欢迎访问一九零五行业门户网

java8的stream怎么取max

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); }}
以上就是java8的stream怎么取max的详细内容。
其它类似信息

推荐信息