El método thenComparingInt( java.util.function.ToIntFunction ) de Comparator Interface en Java devuelve un comparador de orden lexicográfico con una función que extrae una clave de clasificación int.
Sintaxis:
default Comparator <T> thenComparingInt(ToIntFunction <T> keyExtractor)
Parámetros: este método acepta keyExtractor, que es la función utilizada para extraer la clave de clasificación Int.
Valor devuelto: este método devuelve un comparador de orden lexicográfico compuesto por este y luego la clave de ordenación Int.
Excepción: este método lanza NullPointerException si el argumento es nulo.
Los siguientes programas ilustran el método ComparingInt(java.util.function.ToIntFunction):
Programa 1:
// Java program to demonstrate Comparator // thenComparingInt(ToIntFunction) method import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; public class GFG { public static void main(String... args) { List<HardwareItems> list = getItems(); System.out.println("before sort:"); list.forEach(System.out::println); // Apply sorting and // also apply thenComparingInt() Collections .sort( list, Comparator .comparing(HardwareItems::getName) .thenComparingInt(HardwareItems::getPrice)); System.out.println("after sort:"); list.forEach(System.out::println); } private static List<HardwareItems> getItems() { return Arrays.asList( new HardwareItems("Laptop", 40000), new HardwareItems("Desktop", 20000), new HardwareItems("Laptop", 45500), new HardwareItems("Monitor", 10000), new HardwareItems("Desktop", 22000)); } private static class HardwareItems { private String name; private int price; public HardwareItems(String name, int price) { this.name = name; this.price = price; } public String getName() { return name; } public int getPrice() { return price; } @Override public String toString() { return "HardwareItems [name=" + name + ", price=" + price + "]"; } } }
La salida impresa en la consola de IDE se muestra a continuación.
Salida:
puede ver en el ejemplo que la primera clasificación se realiza por nombre y, si el nombre es el mismo, entonces por precio, que es de tipo int.
Programa 2:
// Java program to demonstrate Comparator // thenComparingInt(ToIntFunction) method import java.util.Arrays; import java.util.Comparator; import java.util.List; public class GFG { public static void main(String... args) { List<Double> list = Arrays.asList(1.12, 2.4, 3.43, 4.343, 5.434); try { // apply thenComparingInt Comparator.comparing(list::get) .thenComparingInt(null); } catch (Exception e) { System.out.printf("Exception:" + e); } } }
El resultado impreso en la consola se muestra a continuación.
Producción:
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA