Necesitamos ordenar los objetos, pero los objetos no son valores numéricos específicos como los tipos básicos.
Si desea comparar objetos, debe implementar cualquiera de las dos interfaces Comparable Comparable Comparable Comparator Comparator Interface
String wrapper, etc., implementa la interfaz Comparable y anula el método CompareTo ()
Reescribir comparación con analogía es igual al método de reescritura, obtener el contenido de los atributos para comparar
Ordenamiento natural
- this.field> obj.field 返回 +
-esto <obj.field devuelve-
- this.field == obj.field 返回 0
La clasificación de clases personalizada también implementa la interfaz Comparable y anula el método CompareTo ()
Clasificación personalizada
La clase personalizada tiene múltiples atributos
Cuando los atributos del juicio principal son los mismos y no se pueden comparar
Se pueden superponer múltiples juicios de atributos, es decir, el mismo int es más del doble y el mismo carácter es más que String,
- this.field == obj.field 再 判断 this.field2 和 obj.field2
Comparador de clasificación personalizada, comparador
Reescribe el método de comparación para comparar el tamaño del objeto
Número positivo o1> o2
Número negativo o1 <o2
0 o1 == o2
¿Diferencia comparable y comparativa?
Comparable es adecuado para establecer un método de clasificación fijo
El comparador se utiliza para personalizar temporalmente la clasificación, el método de clasificación es más flexible