Java 8中的收集器maxBy()方法

Java 8中Collector类的maxBy()方法返回一个Collector,Collector根据给定的Comparator(描述为Optional <T>)生成最大元素。

语法如下

static <T> Collector<T,?,Optional<T>> maxBy(Comparator<? super T> comparator)

在这里,参数

  • T-输入元素的类型

  • 比较器-用于比较元素

  • 选项<T>-可能包含或可能不包含非空值的容器对象

要使用Java中的Collectors类,请导入以下包

import java.util.stream.Collectors;

以下是maxBy()在Java中实现方法的示例

示例

import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Demo {
   public static void main(String[] args) {
      Stream<String> stream = Stream.of("4", "7", "25", "87");
      Optional<String> op = stream.collect(Collectors.maxBy(String::compareTo));
      if (op.isPresent()) {
         System.out.println(op.get());
      } else {
         System.out.println("Nothing!");
      }
   }
}

输出结果

87