¿Qué es comparable en Java?
Comparable en Java es un objeto que se compara con otro objeto. Ayuda a ordenar la lista de elementos personalizados. Una clase debe implementar la interfaz java.lang.Comparable para comparar sus escenarios. La matriz de objetos que implementan una interfaz comparable se ordena automáticamente mediante los métodos Arrays.sort y Collections.sort.
En este tutorial de Comparador vs Comparable en Java, aprenderá:
¿Qué es comparativo en Java?
Comparativo en Java es un objeto para comparar diferentes objetos de diferentes clases. También se utiliza una interfaz de comparación en Java para establecer objetivos de clase definidos por el usuario. Incluye dos importantes métodos de interfaz de comparación llamados comparación (Objeto obj1, Objeto obj2) e igual (elemento objetivo).
EFECTOS PRINCIPALES:
- Comparator proporciona un método compareTo () para ordenar elementos en Java, pero Comparator proporciona un método de comparación () para ordenar elementos en Java.
- El paquete java.lang tiene una interfaz comparable, pero el paquete java.util tiene una interfaz comparable.
- Comparator proporciona una única secuencia de clasificación y Comparator proporciona varias secuencias de clasificación.
- La comparabilidad afecta a la clase original, pero el comparador no afecta a la clase original.
Método utilizado en comparación:
El siguiente es un método importante utilizado en la interfaz Comparable:
Comparar con ():
CompareTo método () utilizado para la clasificación natural de alambre. La clasificación natural significa el orden de clasificación del objeto, p. Ej., Orden numérico para clasificar números enteros, orden alfabético para String, etc.
La sintaxis del método CompareTo () es la siguiente:
int compareTo(T obj)
En la sintaxis anterior, T indica el tipo de cosas que vas a comparar.
El método CompareTo () compara el objeto con T obj.
Producción:
- Devuelve 0 si los valores son iguales.
- Porque, si el objeto tiene un valor menor, este método devuelve un valor negativo.
- Si el objeto tiene un valor más alto, devuelve un valor positivo.
Ejemplo CompareTo Method ():
El siguiente programa de un ejemplo de Java comparable muestra una comparación entre dos caracteres, «a» y «b». El carácter «a» precede a la «b» en orden alfabético.
Por lo tanto, la salida es -1. El carácter «b» viene después de «a» en orden alfabético. Por tanto, la salida 1. El carácter «a» es igual a «b». Por tanto, la salida es 0.
public class Sample_String { public static void main(String[] args) { String str_Sample = "a"; System.out.println("Compare To 'a' b is : " + str_Sample.compareTo("b")); str_Sample = "b"; System.out.println("Compare To 'b' a is : " + str_Sample.compareTo("a")); str_Sample = "b"; System.out.println("Compare To 'b' b is : " + str_Sample.compareTo("b")); } }
Producción
Compare To 'a' b is : -1 Compare To 'b' a is : 1 Compare To 'b' b is : 0
Método utilizado en la comparación:
Los siguientes son los métodos importantes que se utilizan en una interfaz de comparación:
Comparar ():
Comparación () le permite ordenar cosas. Para hacer esto, necesita crear una clase que implemente una interfaz de comparación. Después de esto, debe superar el método de comparación.
La proporción del método de comparación () es la siguiente:
compare(Object obj1, Object obj2)
En la sintaxis anterior, obj1 y obj2 son dos objetos que debe comparar usando un método de comparación ().
Producción:
- Devuelve un entero negativo si el primer argumento es menor que el segundo.
- Devuelve cero si el primer argumento es igual al segundo argumento.
- Este método puede devolver un entero positivo, en caso de que el primer argumento sea mayor que el segundo.
Tienes que asegurarte de que la relación no sea permanente. Por ejemplo, ((compare (a, b)> 0) && (compare (b, c)> 0)) lo que implica compare (a, c)> 0.
Ejemplo de método de comparación:
En la siguiente tabla de un ejemplo de comparador de Java, hay 6 variables. «x», «y», «p», «q», «r» y «s». La salida es -1 como el valor de «x», 20 es menor que el valor de «y», 30. La salida es 0 porque el valor de «p», 40 es igual al valor de «q», 40 .
import java.lang.Integer; public class example { public static void main(String args[]) { int x = 20; int y = 30; // as 10 less than 20, // Output will be a value less than zero System.out.println(Integer.compare(x, y)); int p = 40; int q = 40; // as 30 equals 30, // Output will be zero System.out.println(Integer.compare(p, q)); int r = 20; int s = 7; // as 15 is greater than 8, // Output will be a value greater than zero System.out.println(Integer.compare(r, s)); } }
Producción:
-1 0 1
Igual ():
Equal () verifica si el número de objeto es igual al objeto, que se pasa como argumento o no.
La proporción del método equivalente () es la siguiente:
es igual a booleano público (Objetivo o)
Este método toma dos parámetros 1) un objeto 2) valor de rendimiento. Devuelve verdadero a menos que el argumento pasado sea nulo y sea un objeto similar con el mismo valor numérico.
Ejemplo de método igual:
En el siguiente ejemplo, comparamos las cuatro variables entre sí. Hay tres variables de tipo entero y una de tipo corto. El primer resultado es falso porque el valor de p, que es 5, no es igual al valor de q, que es 20.
El segundo resultado es verdadero porque el valor de las variables pyr son iguales, es decir, 5. Finalmente, el resultado es falso, porque las variables pys tienen diferentes valores asignados.
public class Test { public static void main(String args[]) { Integer p = 5; Integer q = 20; Integer r =5; Short s = 5; System.out.println(p.equals(q)); System.out.println(p.equals(r)); System.out.println(p.equals(s)); } }
Producción
false true false
Diferencia entre comparativo y comparativo en Java
Diferencia entre comparativo y comparativo en Java
Estas son las principales diferencias entre Java Comparable y Comparator:
Comparable | Comparativo |
Comparable proporciona un método compareTo () para ordenar elementos en Java. | Comparative proporciona un método de comparación () para ordenar elementos en Java. |
Una interfaz comparable está presente en el paquete java.lang. | Una interfaz de comparación está presente en el paquete java.util. |
La lógica de clasificación debe estar en la misma clase que va a clasificar. | La lógica de la clasificación debe estar en una clase separada para escribir una clasificación diferente según las diferentes características de los objetos. |
La clase que está tratando de resolver debe implementar una interfaz comparable. | Su clase, por la que desea ordenar las cosas, no necesita implementar una interfaz de comparación. |
Proporciona secuencias de clasificación individuales. | Proporciona múltiples secuencias de clasificación. |
Este método puede clasificar los datos según el orden de clasificación natural. | Este método ordena los datos según el orden de clasificación personalizado. |
Afecta a la clase original. es decir, se cambia la clase real. | No interfiere con la clase original, es decir, la clase real no cambia. |
A menudo implementado en la API con: clases Calendario, Carpeta, Fecha y Cadena. | Se aplica para ordenar casos de clases de terceros. |
Cada clase de carpeta y clase String implementan una interfaz comparable. | Las únicas clases comparativas que se aplican son Collator y RuleBasedColator. |
Uso de mejores prácticas y comparabilidad y comparabilidad en Java
- Utilice una interfaz comparable cuando la comparación sea estándar para la clase en particular.
- Puedes usar lambdas con un comparador.
- Muchas clases básicas disponibles implementan una interfaz comparable.
- Puede utilizar TreeSet y TreeMap u ordenar Set o Map.
- El método compareTo () funciona tanto con un comparador como con un comparador.
- Utilice la interfaz del comparador solo cuando
- El método compareTo () devolverá un entero positivo si el primer objeto es más grande que el otro, negativo si es más bajo y cero si ambos son iguales.