Comparador comparable y obtener un texto

Comparador comparable y obtener un texto

Daily elogio búsqueda, gracias jefe.

Bienvenido a la preocupación pública número: de hecho, Aries. Secar actualizado continuamente en ......

一, comparable

(1), definido

En primer lugar comparable es una interfaz proporcionada por Java, no hay una sola manera:

/**
 * Compares this object with the specified object for order.  Returns a
 * negative integer, zero, or a positive integer as this object is less
 * than, equal to, or greater than the specified object.
 */
public int compareTo(T o);
复制代码

Un breve vistazo por encima de comentario:

Compara este objeto y el objeto especificado

  1. se devuelve número negativo. Cuando el objeto es menor que el objeto especificado
  2. Cuando este objeto es igual a los retornos de objetos especificados 0
  3. Se devuelve un número positivo cuando el objeto es más grande que el objeto especificado

Así, este método se puede utilizar para proporcionar una interfaz para lograr una comparación de secuencias ( "tamaño") de esta interfaz objetos, tales como común: String, Integer otras clases implementan esta interfaz, por lo que estos objetos se pueden utilizar con el método compareTo para la comparación.

(2), dan castaña

Entero

public int compareTo(Integer anotherInteger) {
    return compare(this.value, anotherInteger.value);
}

public static int compare(int x, int y) {
    return (x < y) ? -1 : ((x == y) ? 0 : 1);
}
复制代码

Este objeto es visible cuando el valor <valor de comparación es -1, 0 devuelve son iguales, de retorno es mayor que 1 (definición de interfaz y lo que significa que es el método consistente)

(3), la escena

  1. Cuando se almacena Colección, cuando la matriz se puede utilizar directamente Colecciones un método para ordenar y ordenar a las matrices, elemento objeto de colación se reescribe método compareTo.
  2. Cuando estas clases o almacenados, tales como cuando el TreeMap TreeSet, automáticamente se ordenará de acuerdo con un método compareTo memoria reescribible.
  3. Llamar compareTo comparar entre implementa esta clase de interfaz.

Dos, Comparador

(1), definido

Apreciará que el significado literal, el comparador, la comparación se utiliza para especificar la regla.

las interfaces de comparación, para implementar la interfaz y en la realización del tipo especificado, comparar método de reescritura, puede especificar tipos predeterminados de reglas de comparación.

(2), dan castaña

He creado un grano llamado testBean:

@Data
public class TestBean {

    private int id;

    private String name;
}
复制代码

Lo llevaré a la colección almacenados y ordenados según el valor de ser de flashbacks testBean en el atributo id. Por lo que se puede escribir una clase que implementa la interfaz Comparador y genéricos testBean.

@Override
public int compare(TestBean o1, TestBean o2) {
    int id1 = o1.getId();
    int id2 = o2.getId();
    if (id1 < id2) {
        return 1;
    }
    if (id1 > id2) {
        return -1;
    }
    return 0;
}
复制代码

¿Por qué hablar en este escrito:

Debemos saber primero la situación de orden positivo: <devuelve -1 = 0 se devuelve,> devuelve 1, y esta comparación compareTo es el mismo, por lo que lo contrario es el caso, a su vez: <Anterior 1 = devuelven 0> -1

Simplificar el texto:

@Override
public int compare(TestBean o1, TestBean o2) {
    int id1 = o1.getId();
    int id2 = o2.getId();
    return id2 - id1;
}
复制代码

ID2-ID1: ID1 Si <id2 que ID2-ID1 es el número positivo, si ID1> id2 que ID2-ID1 es el negativo, simplemente lógica.

(3), la escena

El ejemplo anterior de una escena ya está (para ordenar un conjunto personalizado de elementos en)

  1. Collections.sort () / Arrays.sort (), si no implementa Comparable, no es directamente especie, que puede ser añadido para lograr una interfaz Comparador comparador en el segundo argumento, para completar sus reglas de comparación.
  2. Lista método de objeto de clasificación, se debe pasar un comparador

En tercer lugar, y por último

contenido de este sumario

Más recursos: de hecho, Aries

Bienvenido estrellas

Al igual que la demanda diaria

  • Si cree que este artículo útil para usted, por favor "mirada / avance / alabanza / estrella" gracias
  • Si ha encontrado un mejor o ideas diferentes, por favor háganoslo saber en la sección de comentarios para explorar el intercambio modificar muy agradecidos

No se aceptan atención del público: "De hecho, Aries es" seca actualiza continuamente en ......

Supongo que te gusta

Origin juejin.im/post/5e8a9440e51d457918094cab
Recomendado
Clasificación