Java Streams - Collectors maxBy(Comparator comparator) example








Collectors maxBy(Comparator<? super T> comparator) returns a Collector that produces the maximal element according to a given Comparator, described as an Optional<T>.

Syntax

maxBy has the following syntax.

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

Example

The following example shows how to use maxBy.

import java.util.Comparator;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/*www  . j a v  a 2  s  . c o m*/
public class Main {
  public static void main(String[] args) {
    Stream<String> s = Stream.of("1","2","3");
    
    Optional<String> o =  s.collect(Collectors.maxBy(Comparator.reverseOrder()));

    if(o.isPresent()){
      System.out.println(o.get());
    }else{
      System.out.println("no value");  
    }
    
  }
}

The code above generates the following result.