Java | Colectores minBy(Comparator comparador) con Ejemplos

Colectores minBy(Comparator< ? super T > comparador) se utiliza para encontrar un elemento de acuerdo con el comparador pasado como parámetro. Devuelve un Collector que produce el elemento mínimo de acuerdo con un Comparator dado, descrito como Optional<T> .

Sintaxis:

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

donde los términos utilizados son los siguientes:

  • Interface Collector<T, A, R> : una operación de reducción mutable que acumula elementos de entrada en un contenedor de resultados mutable, transformando opcionalmente el resultado acumulado en una representación final después de que se hayan procesado todos los elementos de entrada. Las operaciones de reducción se pueden realizar secuencialmente o en paralelo.
    • T: El tipo de elementos de entrada a la operación de reducción.
    • A: El tipo de acumulación mutable de la operación de reducción.
    • R: El tipo de resultado de la operación de reducción.
  • Opcional: un objeto contenedor que puede contener o no un valor no nulo. Si hay un valor presente, isPresent() devolverá verdadero y get() devolverá el valor.
  • Comparador: una función de comparación, que impone un orden total en una colección de objetos. Los comparadores se pueden pasar a un método de clasificación para permitir un control preciso sobre el orden de clasificación. Los comparadores también se pueden usar para controlar el orden de ciertas estructuras de datos (como conjuntos ordenados o mapas ordenados) o para proporcionar un orden para colecciones de objetos que no tienen un orden natural.

Parámetros: Este método toma un comparador de parámetros de tipo Comparator, que es una función de comparación, que impone un ordenamiento total en alguna colección de objetos. Los comparadores se pueden pasar a un método de clasificación para permitir un control preciso sobre el orden de clasificación. Los comparadores también se pueden usar para controlar el orden de ciertas estructuras de datos (como conjuntos ordenados o mapas ordenados) o para proporcionar un orden para colecciones de objetos que no tienen un orden natural.

Valor devuelto: este método devuelve un recopilador que produce el valor mínimo de acuerdo con el comparador pasado.

A continuación se muestran algunos ejemplos para ilustrar la implementación de minBy():

Programa 1: Para demostrar minBy() usando naturalOrder()

// Java code to show the implementation of
// Collectors minBy(Comparator comparator) function
  
import java.util.Comparator;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
class GFG {
    // Driver code
    public static void main(String[] args)
    {
        // creating a Stream of strings
        Stream<String> s = Stream.of("2", "3", "4", "5");
  
        // using Collectors minBy(Comparator comparator)
        // and finding the minimum element
        // in reverse order
        Optional<String> obj = s
                                   .collect(Collectors
                                                .minBy(Comparator
                                                           .naturalOrder()));
  
        // if present, print the element
        // else print the message
        if (obj.isPresent()) {
            System.out.println(obj.get());
        }
        else {
            System.out.println("no value");
        }
    }
}
Producción:

2

Programa 2: Para demostrar minBy() usando reverseOrder()

// Java code to show the implementation of
// Collectors minBy(Comparator comparator) function
  
import java.util.Comparator;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
class GFG {
    // Driver code
    public static void main(String[] args)
    {
        // creating a Stream of strings
        Stream<String> s = Stream.of("2", "3", "4", "5");
  
        // using Collectors minBy(Comparator comparator)
        // and finding the minimum element
        // in reverse order
        Optional<String> obj = s
                                   .collect(Collectors
                                                .minBy(Comparator
                                                           .reverseOrder()));
  
        // if present, print the element
        // else print the message
        if (obj.isPresent()) {
            System.out.println(obj.get());
        }
        else {
            System.out.println("no value");
        }
    }
}
Producción:

5

Programa 3: Para demostrar minBy() cuando no se pasan valores.

// Java code to show the implementation of
// Collectors minBy(Comparator comparator) function
  
import java.util.Comparator;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // creating a Stream of strings
        Stream<String> s = Stream.of();
  
        // using Collectors minBy(Comparator comparator)
        // and finding the minimum element
        // in reverse order
        Optional<String> obj = s
                                   .collect(Collectors
                                                .minBy(Comparator
                                                           .reverseOrder()));
  
        // if present, print the element
        // else print the message
        if (obj.isPresent()) {
            System.out.println(obj.get());
        }
        else {
            System.out.println("no value");
        }
    }
}
Producción:

no value

Publicación traducida automáticamente

Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *