java.util.Collections ---- ---- Comparador Comparable

com.itheima.demo05.Collections empaquetar;

Estudiante public class {
    private String nombre;
    int edad privada;

    Estudiante pública () {
    }

    Estudiante pública (String nombre, edad int) {
        this.name = Nombre;
        this.age = edad;
    }

    @Anular
    Cadena public toString () {
        volver "Estudiante {" +
                "Name = '" + nombre + '\'' +
                "Edad =" + edad +
                '}';
    }

    Public String getName () {
        Nombre del retorno;
    }

    pública setName void (String nombre) {
        this.name = Nombre;
    }

    public int getAge () {
        la edad de retorno;
    }

    setAge public void (int edad) {
        this.age = edad;
    }
}

com.itheima.demo05.Collections empaquetar;

java.util.ArrayList importación;
java.util.Collections de importación;
java.util.Comparator importación;

/ *
    - java.utils.Collections es un conjunto de herramientas para la operación de recogida. Parte del siguiente modo:
        public static <T> void sort (List <T> lista, Comparador <Super T?>): Los elementos de la colección ordenados de acuerdo con las reglas especificadas.

     La diferencia Comparador y comparable
        Método CompareTo propias reglas (este) y otros (parámetros) de comparación, que necesitan para implementar la interfaz Comparable, la comparación reescrito: Comparable
        Comparador: encontrar el equivalente de un tercero árbitro para comparar dos

    Comparador de colación:
        o1 o2-: ascendente
 * /
Demo03Sort public class {
    public static void Main (args String []) {
        ArrayList <Integer> list01 = new ArrayList <> ();
        list01.add (1);
        list01.add (3);
        list01.add (2);
        System.out.println (list01); // [1, 3, 2]

        Collections.sort (list01, nuevo Comparador <Integer> () {
            // reglas de reescritura para comparar
            @Anular
            public int comparar (o1 entero, entero O2) {
                // retorno o1 o2-; // ascendente
                volver o2-o1; // descendente
            }
        });

        System.out.println (list01);

        ArrayList <Estudiante> list02 = new ArrayList <> ();
        list02.add (nueva Estudiante ( "una barra caliente Dilly", 18));
        list02.add (nueva Estudiante ( "Gülnezer Bextiyar", 20));
        list02.add (nueva Estudiante ( "杨 幂", 17));
        list02.add (nuevo Student ( "b 杨 幂", 18));
        System.out.println (list02);

        /*Collections.sort(list02, nuevo Comparador <Estudiante> () {
            @Anular
            public int (o1 Estudiante, Estudiante O2) comparar {
                // orden ascendente por edad
                o1.getAge de retorno () - o2.getAge ();
            }
        }); * /

        // extensiones: Aprenda
        Collections.sort (list02, nuevo Comparador <Estudiante> () {
            @Anular
            public int (o1 Estudiante, Estudiante O2) comparar {
                // orden ascendente por edad
                resultado int = o1.getAge () - o2.getAge ();
                // Si dos personas de la misma edad, la primera palabra y luego comparar el uso del nombre
                si (resultado == 0) {
                    resultar = o1.getName () charAt (0) -o2.getName () charAt (0)..;
                }
                return resultado;
            }

        });

        System.out.println (list02);
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

Publicado 98 artículos originales · ganado elogios 43 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_42352666/article/details/104759316
Recomendado
Clasificación