Java Streams - Collectors minBy(Comparator comparator) example








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

Syntax

minBy has the following syntax.

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

Example

The following example shows how to use minBy.

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

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

The code above generates the following result.