El método compareLong ( java.util.function.ToLongFunction ) de Comparator Interface en Java acepta una función como parámetro que extrae una clave de clasificación larga de un tipo T y devuelve un comparador que compara por esa clave de clasificación. El comparador devuelto es serializable si la función especificada también es serializable.
Sintaxis:
static <T> Comparator<T> comparingLong(ToLongFunction <T> keyExtractor)
Parámetros: este método acepta un solo parámetro keyExtractor , que es la función utilizada para extraer la clave de clasificación larga.
Valor de retorno: este método devuelve un comparador que compara por una clave extraída
Excepción: este método arroja NullPolongerException si el argumento es nulo.
Los siguientes programas ilustran el método compareLong(java.util.function.ToLongFunction):
Programa 1:
// Java program to demonstrate Comparator // comparingLong(ToLongFunction) 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) { // create some user objects User u1 = new User("Aaman", 25724474); User u2 = new User("Joyita", 2262848); User u3 = new User("Suvam", 2824444); User u4 = new User("mahafuj", 2544244); // before sort List<User> list = Arrays.asList(u2, u1, u4, u3); System.out.println("Before Sort:"); list.forEach(user -> System.out.println(user)); Collections.sort(list, Comparator.comparingLong( User::getregistrationId)); System.out.println("\nAfterSort:"); list.forEach(user -> System.out.println(user)); } } class User implements Comparable<User> { public String name; public long registrationId; public User(String name, long registrationId) { this.name = name; this.registrationId = registrationId; } public int compareTo(User u1) { return name.compareTo(u1.name); } public String getName() { return name; } public void setName(String name) { this.name = name; } public long getregistrationId() { return registrationId; } public void setregistrationId(long registrationId) { this.registrationId = registrationId; } @Override public String toString() { return "User [name=" + name + ", registrationId=" + registrationId + "]"; } }
La salida impresa en la consola de IDE se muestra a continuación.
Producción:
Programa 2:
// Java program to demonstrate Comparator // comparingLong(ToLongFunction) 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) { // before sort List<Order> list = Arrays.asList( new Order("A382y482y48", 3204355), new Order("Vvekhfbkje2", 2425355), new Order("efkhfbekjfbe", 1345435), new Order("bhdhdfaddvad", 2305535), new Order("abkasbcjabjc", 1005454)); System.out.println("Before Sort:"); list.forEach(order -> System.out.println(order)); Collections.sort(list, Comparator.comparingLong( Order::getValue)); System.out.println("\nAfter Sort:"); list.forEach(order -> System.out.println(order)); } } class Order implements Comparable<Order> { public String orderNo; public long value; public int compareTo(Order o1) { return orderNo.compareTo(o1.orderNo); } public Order(String orderNo, long value) { super(); this.orderNo = orderNo; this.value = value; } @Override public String toString() { return "Order [orderNo=" + orderNo + ", value=" + value + "]"; } public String getOrderNo() { return orderNo; } public void setOrderNo(String orderNo) { this.orderNo = orderNo; } public long getValue() { return value; } public void setValue(long value) { this.value = value; } }
El resultado impreso en la consola se muestra a continuación.
Producción:
Referencias: https://docs.oracle.com/javase/10/docs/api/java/util/Comparator.html#comparingLong(java.util.function.ToLongFunction)
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA