Java8中Stream流求最大值最小值怎么实现

其他教程   发布日期:2025年04月08日   浏览次数:97

这篇“Java8中Stream流求最大值最小值怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java8中Stream流求最大值最小值怎么实现”文章吧。

一、BigDecimal 求最大值和最小值

1. stream().reduce()实现

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

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

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

二、Integer 求最大值和最小值

1. stream().reduce()实现

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

2. Collectors.summarizingInt()实现

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

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

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

三、Long 求最大值和最小值

1. stream().reduce()实现

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

2. Collectors.summarizingLong()实现

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

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

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

四、Double 求最大值和最小值

1. stream().reduce()实现

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

2. Collectors.summarizingLong()实现

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

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

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

以上就是Java8中Stream流求最大值最小值怎么实现的详细内容,更多关于Java8中Stream流求最大值最小值怎么实现的资料请关注九品源码其它相关文章!