Java8中Stream流求最大值最小值的实现示例

本文主要介绍了Java8中Stream流求最大值最小值的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、BigDecimal 求最大值和最小值

1. stream().reduce()实现

List list = new ArrayList<>(Arrays.asList(new BigDecimal("1"), new BigDecimal("2"))); BigDecimal max = list.stream().reduce(list.get(0), BigDecimal::max); BigDecimal min = list.stream().reduce(list.get(0), BigDecimal::min); 

2. stream().max()或stream().min()实现

List list = new ArrayList<>(Arrays.asList(new BigDecimal("1"), new BigDecimal("2"))); BigDecimal max = list.stream().max(Comparator.comparing(x -> x)).orElse(null); BigDecimal min = list.stream().min(Comparator.comparing(x -> x)).orElse(null); 

二、Integer 求最大值和最小值

1. stream().reduce()实现

List list = new ArrayList<>(Arrays.asList(1, 2)); Integer max = list.stream().reduce(list.get(0), Integer::max); Integer min = list.stream().reduce(list.get(0), Integer::min); 

2. Collectors.summarizingInt()实现

List list = new ArrayList<>(Arrays.asList(1, 2)); IntSummaryStatistics intSummaryStatistics = list.stream().collect(Collectors.summarizingInt(x -> x)); Integer max = intSummaryStatistics.getMax(); Integer min = intSummaryStatistics.getMin(); 

3. stream().max()或stream().min()实现

List list = new ArrayList<>(Arrays.asList(1, 2)); Integer max = list.stream().max(Comparator.comparing(x -> x)).orElse(null); Integer min = list.stream().min(Comparator.comparing(x -> x)).orElse(null); 

三、Long 求最大值和最小值

1. stream().reduce()实现

List list = new ArrayList<>(Arrays.asList(1L, 2L)); Long max = list.stream().reduce(list.get(0), Long::max); Long min = list.stream().reduce(list.get(0), Long::min); 

2. Collectors.summarizingLong()实现

List list = new ArrayList<>(Arrays.asList(1L, 2L)); LongSummaryStatistics summaryStatistics = list.stream().collect(Collectors.summarizingLong(x -> x)); Long max = summaryStatistics.getMax(); Long min = summaryStatistics.getMin(); 

3. stream().max()或stream().min()实现

List list = new ArrayList<>(Arrays.asList(1L, 2L)); Long max = list.stream().max(Comparator.comparing(x -> x)).orElse(null); Long min = list.stream().min(Comparator.comparing(x -> x)).orElse(null); 

四、Double 求最大值和最小值

1. stream().reduce()实现

List list = new ArrayList<>(Arrays.asList(1d, 2d)); Double max = list.stream().reduce(list.get(0), Double::max); Double min = list.stream().reduce(list.get(0), Double::min); 

2. Collectors.summarizingLong()实现

List list = new ArrayList<>(Arrays.asList(1d, 2d)); DoubleSummaryStatistics summaryStatistics = list.stream().collect(Collectors.summarizingDouble(x -> x)); Double max = summaryStatistics.getMax(); Double min = summaryStatistics.getMin(); 

3. stream().max()或stream().min()实现

List list = new ArrayList<>(Arrays.asList(1d, 2d)); Double max = list.stream().max(Comparator.comparing(x -> x)).orElse(null); Double min = list.stream().min(Comparator.comparing(x -> x)).orElse(null); 

到此这篇关于Java8中Stream流求最大值最小值的实现示例的文章就介绍到这了,更多相关Java8 Stream流求最大值最小值内容请搜索0133技术站以前的文章或继续浏览下面的相关文章希望大家以后多多支持0133技术站!

以上就是Java8中Stream流求最大值最小值的实现示例的详细内容,更多请关注0133技术站其它相关文章!

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