Recorrer, generar, filtrar y ordenar elementos en colecciones de Java

1: atravesar los elementos y generarlos

2: ordenar una determinada característica de los elementos

3: Elementos filtrantes

1: atravesar los elementos y generarlos

En la programación orientada a objetos de Java, el uso de un bucle for mejorado para atravesar los elementos en la colección de salida puede generar toda la información contenida en el elemento. La forma del bucle for mejorado es para (nombre de variable de tipo de datos: objeto de colección o matriz)

Por ejemplo, lo siguiente es recorrer la colección de listas (la clase de colección es personas)

Para(personas p:pueblos){

Sistema.out.printIn(p);

}

Al atravesar el contenido de salida de la colección, debemos anular el método tostring , de lo contrario solo podemos obtener la dirección del objeto. Preste especial atención a que si la subclase hereda la clase principal y la subclase reescribe el método tostring, debe Las variables de la clase principal no se pueden modificar con privado.

2: ordenar una determinada característica de los elementos

Los elementos de la colección pueden contener mucha información. Si queremos ordenar los elementos de acuerdo con ciertas reglas,

Por ejemplo, en orden ascendente y descendente por edad, altura, peso, etc., necesitamos implementar la interfaz comparar <> (si la clase no hereda otras clases principales, implementamos la interfaz directamente en la clase. Si la clase hereda la clase principal, debemos implementar la interfaz en la clase principal y luego anular el método compareTo para ordenar según la forma que necesitemos.

Por ejemplo, en orden de edad de menor a mayor, el código es:

@Override
public int compareTo(people o) {     return o.getAge() - this.getAge() >= 0 ? -1: 1; }

Después de reescribir el método, solo necesitamos llamar al método collections.sort (colección a ordenar) para completar la clasificación.

3: Elementos filtrantes

En este punto ya sabemos cómo recorrer y ordenar objetos, pero a veces no necesitamos generar todos los elementos o toda la información sobre el objeto, entonces necesitamos filtrar los objetos.

Por ejemplo, solo necesitamos generar los nombres de todos los objetos de la colección, o la información de los diez mejores estudiantes, y solo necesitamos optimizar el código.

Por ejemplo, genere los nombres de todos los objetos
para(people p:peoples){     System.out .println (p.name); }

Genera todos los objetos elemento cuya edad sea mayor que 25

for(personas p:pueblos){     if(p.getAge()>25){         System. fuera .println(p);     } }



Desde entonces, hemos dominado algunas operaciones sobre colecciones, a continuación le damos el código para profundizar los conocimientos relevantes sobre colecciones.

Las clases de prueba son las siguientes.

importar java.util.*;
prueba de clase pública {     public static void main(String[] args) {         Lista<personas> pueblos = new ArrayList<>();         pueblos.add(new Student("王五", 12345456, " Universidad de Pekín", 22, "122", "Estudiante de segundo año", "12101"));         peoples.add(new Student("李六", 12345654, "Universidad de Beijing", 25, "123", "Estudiante de segundo año", " 12101"));         people.add(new Student("李四", 1234356, "大大", 27, "121", " sophomore ", "12101"));         peoples.add(new Student("李七" ", 12345632, "Creciendo", 23, "124", "Estudiante de segundo año", "12101"));         peoples.add(new Student("李八", 123456354, "Creciendo", 24,"125", "         Estudiante de segundo año", "12101")); peoples.add(new Teacher("李九", 123123, "Adulto", 40, "Computadora", "Profesor")); System         . out








.println(people.size()); \\ people.size() representa el tamaño de la colección
        Collections. sort (peoples); \\Llamar al método para ordenar
        por (people p : peoples) {                 System. out .println(p) ;         }         for(people p:peoples){             System. out .println(p.name);         }         for(people p:peoples){             if(p.getAddress().equals("Adulto")){ Comparar contenido de cadena Para usar el método equals.()                 System.out .println(p);             }         } }     }











padre

la gente de clase pública implementa Comparable<personas> {     Nombre de cadena;     número de teléfono int;     Dirección de cadena; 子类要重写该变量,则不能用private修饰     int age;     gente pública() {     }     gente pública(nombre de cadena, número de teléfono int, dirección de cadena, edad int) {         this.name = nombre;         this.phonenumber = número de teléfono;         esta.dirección = dirección;         this.age = edad;     }     public String getName() {         devolver nombre;     }     public void setName (nombre de cadena) {         this.name = nombre;     }     public int getPhonenumber() {
























        devolver número de teléfono;
    }

    public void setPhonenumber(int número de teléfono) {         this.phonenumber = número de teléfono;     }     cadena pública getAddress() {         dirección de retorno;     }     public void setAddress(Dirección de cadena) {         this.address = dirección;     }     public int getAge() {         edad de retorno;     }     public void setAge(int edad) {         this.age = edad;     }     @Override     public String toString() {         return "personas{" +                 "nombre='" + nombre + '\'' +                 ",

























                ", dirección='" + dirección + '\'' +
                ", edad='" + edad + '\'' +
                '}';
    }
    @Override
    public int compareTo(people o) {         return o.getAge() - this.getAge() >= 0 ? -1: 1;     } }


Categoría de estudiante (subcategoría)

clase pública Estudiante extiende personas {     puntuación de cadena privada;     grado de cadena privada;     número de clase de cadena privada;     estudiante público() {     }     estudiante público(nombre de cadena, número de teléfono int, dirección de cadena, edad int, puntuación de cadena, calificación de cadena, número de clase de cadena) {         super(nombre, número de teléfono, dirección, edad);         this.score = puntuación;         this.grade = calificación;         this.classnumber = número de clase;     }     public String getScore() {         puntuación de retorno;     }     public void setScore(puntuación de cadena) {         this.score = puntuación;     }     cadena pública getGrade() {
























        calificación de retorno;
    }

    public void setGrade(String calificación) {         this.grade = calificación;     }     public String getClassnumber() {         return número de clase;     }     public void setClassnumber(String classnumber) {         this.classnumber = classnumber;     }     @Override     public String toString() {         return "Estudiante{" +                 "puntuación='" + puntuación + '\'' +                 ", calificación='" + calificación + '\'' +                 ", número de clase='" + número de clase + '\'' +                 ",




















                ", dirección='" + dirección + '\'' +
                ", edad='" + edad + '\'' +
                '}';
    }
}

Categoría de profesor (subcategoría)

clase pública Profesor extiende personas {     cadena privada majorfield;     rango de cadena privada;     profesor público() {     }     profesor público(nombre de cadena, número de teléfono int, dirección de cadena, edad int, campo principal de cadena, rango de cadena) {         super(nombre, número de teléfono, dirección, edad);         this.majorfield = campo mayor;         this.rank = rango;     }     profesor público (cadena campo mayor, rango de cadena) {         this.majorfield = campo mayor;         this.rank = rango;     }     public String getMajorfield() {         return majorfield;     }     public void setMajorfield (String majorfield) {






















        this.majorfield = campo mayor;
    }

    public String getRank() {         return rango;     }     public void setRank(Rango de cadena) {         this.rank = rango;     }     @Override     public String toString() {         return "Profesor{" +                 "majorfield='" + majorfield + '\'' +                 ", rango='" + rango + '\'' +                 ", nombre='" + nombre + '\'' +                 ", número de teléfono=" + número de teléfono +                 ", dirección='" + dirección + '\'' +                 ",



















Supongo que te gusta

Origin blog.csdn.net/weixin_69764845/article/details/127903288
Recomendado
Clasificación