En este tutorial, aprenderemos cómo encontrar el valor mínimo y máximo de un flujo de elementos comparables como caracteres, cadenas, fechas, etc.
Usamos el métodos min () y max () para encontrar el valor mínimo y máximo en los caudales. Estos métodos se utilizan para encontrar valores mínimos y máximos en diferentes tipos de secuencias, como secuencias de caracteres, cadenas, fechas, etc. Solo necesitamos cambiar el parámetro que pasamos en este método según el tipo de flujo.
Por ejemplo:
max (Comparator.comparing (Integer :: valueOf)): para obtener el valor máximo del flujo numérico.
max (Comparator.comparing (LocalDate :: toEpochDay)): para obtener la fecha máxima del flujo de fechas.
Como puede ver, usamos el método Comparator.comparing () para comparar los elementos del flujo. Este mismo método se utiliza para comparar elementos de todos los tipos de secuencias, como secuencias de caracteres, cadenas, fechas, etc. Solo el parámetro cambiará según el tipo de flujo.
Encuentre el número mínimo y máximo de un flujo de números
En este ejemplo, estamos encontrando el valor mínimo y máximo de un flujo de números.
import java.util.Comparator; import java.util.stream.*; public class JavaExample{ public static void main(String args[]) { //getting max number Integer maxnum = Stream.of(10, 13, 4, 9, 2, 100) .max(Comparator.comparing(Integer::valueOf)) .get(); //getting min number Integer minnum = Stream.of(10, 13, 4, 9, 2, 100) .min(Comparator.comparing(Integer::valueOf)) .get(); System.out.println("Max number is: " + maxnum); System.out.println("Min number is: " + minnum); } }
Producción:
Encuentre la fecha mínima y máxima de la secuencia de fechas
Encuentre la fecha mínima y máxima de una serie de fechas utilizando el método mínimo y máximo.
import java.util.Comparator; import java.time.LocalDate; import java.util.List; import java.util.Arrays; public class JavaExample{ public static void main(String args[]) { List<LocalDate> dates = Arrays.asList(LocalDate.now(), LocalDate.now().minusDays(9), LocalDate.now().minusMonths(2), LocalDate.now().minusDays(30)); //getting max date LocalDate maxdate = dates.stream() .max( Comparator.comparing( LocalDate::toEpochDay ) ) .get(); //getting min date LocalDate mindate = dates.stream() .min( Comparator.comparing( LocalDate::toEpochDay ) ) .get(); System.out.println("Max Date is: " + maxdate); System.out.println("Min Date is: " + mindate); } }
Producción:
Encuentra la cadena con el primer carácter mínimo y máximo
import java.util.Comparator; import java.util.stream.*; public class JavaExample{ public static void main(String args[]) { // Get Min or Max String/Char String maxFirstChar = Stream.of("Aryan", "Tom", "Harry", "Steve") .max(Comparator.comparing(String::valueOf)) .get(); String minFirstChar = Stream.of("Aryan", "Tom", "Harry", "Steve") .min(Comparator.comparing(String::valueOf)) .get(); System.out.println("String with max first char: " + maxFirstChar); System.out.println("String with min first char: " + minFirstChar); } }
Producción: