Java avanzado --- clase Colecciones

Clase de colecciones avanzadas de Java

ColeccionesClase yColecciónLas interfaces son cosas completamente diferentes, todos deben ser claros.
La clase Colecciones es la misma que la clase Arrays mencionada anteriormente, que es una clase de herramienta. Uno es para operaciones de recolección y el otro es para arreglos.

1. Métodos de uso común en la clase Colecciones:

1.swap (List list, int i, int j): intercambia las posiciones de los dos índices en la lista especificada

2.sort (lista de lista): ordena según el orden natural de los elementos de la lista

3.shuffle (lista de lista): reemplazo aleatorio

4.reverse (lista de lista): reverso

5.fill (Lista de lista, Objeto obj): Utilice el objeto especificado para completar todos los elementos de la lista especificada

6.copy (List dest, List src): es sobrescribir los datos de la lista de origen en la lista de destino

7.binarySearch (lista de lista, clave de objeto) Utilice la búsqueda binaria para encontrar la posición de índice del elemento especificado en la lista especificada

8.max () \ min (): encuentra el valor máximo \ mínimo

Aquí vemos el código fuente del tipo de Colecciones
[Nota: el tipo en la clase Colecciones es en realidad el tipo en la clase Arrays]
Haga clic en Colecciones.sort para verlo
Inserte la descripción de la imagen aquí
y luego haga clic en. Preste atención: primero convierta a un matriz de objetos, y luego use Arrays .sort para ordenar, de repente encontró algo
Inserte la descripción de la imagen aquí
--------------------------------- ------ -------------------------------------------- ------ -------------------------------------------- ------ ------------------------

Dos, dos métodos de comparación

Cuando queramos hacer una comparación personalizada, se utilizarán los siguientes dos métodos.
Inserte la descripción de la imagen aquí
1. UtilizarComparadorComparar (no recomendado)
reescribircompararmétodo

Implementación:

ArrayList<Integer> list = new ArrayList();
list.add(49);
list.add(29);
list.add(88);
list.add(-49);
list.add(56);

System.out.println(list);
Collections.sort(list);     //默认升序
System.out.println(list);

Collections.sort(list, new Comparator<Integer>() {	//这里就是匿名内部类,重写了compare方法
    @Override
    public int compare(Integer o1, Integer o2) {
        return o2-o1;       //降序:o2-o1,升序:o1-o2
    }
});
System.out.println(list);

¿Por qué no se recomienda? La razón es que el método de comparación debe reescribirse para cada comparación, lo cual es problemático.

2. UtiliceComparableComparar (recomendado)
reescribircomparar conmétodo

Requisito: Comparar y clasificar según las calificaciones de los estudiantes.
Implementación específica:
Clase de estudiante:

public class Student  implements Comparable<Student>{
    private String name;
    private String gender;
    private int score;

    public Student(String name, String gender) {
        this.name = name;
        this.gender = gender;
    }

    public Student(String name, String gender, int score) {
        this.name = name;
        this.gender = gender;
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public double getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }

    @Override
    public String toString() {
        return  "姓名:" + name + "\t" +
                "性别:" + gender + "\t"+
                "成绩:" + score ;
    }

    @Override
    public int compareTo(Student o) {		//重写compareTo方法
        return this.score-o.score;			//成绩升序
    }
}

Categoría de prueba:

Student s1 = new Student("Jack","男",98);
Student s2 = new Student("Alis","女",87);
Student s3 = new Student("Louis","女",59);
Student s4 = new Student("Tom","男",88);

List<Student> list = new LinkedList();
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);

Collections.sort(list);
System.out.println(list);

Los resultados muestran
Inserte la descripción de la imagen aquí
que es más conveniente escribir una vez y compartir todas las clases.

Supongo que te gusta

Origin blog.csdn.net/qq_43288259/article/details/113194379
Recomendado
Clasificación