java8的stream如何取max
目录
- Java8的stream取max
- java8 stream详解~聚合(max/min/count)
- 「案例一:获取String集合中最长的元素。」
- 「案例二:获取Integer集合中的最大值。」
- 「案例三:获取员工工资最高的人。」
- 「案例四:计算Integer集合中大于6的元素的个数。」
- 总结
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 = li开发者_C开发st.stream().max((a, b) ->android; a > b ? 1 : -1).get();
java8 stream详解~聚合(max/min/count)
max、min、count这些字眼你一定不陌生,没错,在mysql中我们常用它们进行数据统http://www.devze.com计。
Java stream中也引入了这些概念和用法,极大地方便了我们对集合、数组的数据统计工作。

「案例一:获取String集合中最长的元素。」
public class StreamTest js{
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, Integerwww.devze.com 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);
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
加载中,请稍侯......
精彩评论