Maison  >  Article  >  Java  >  Comment trier les objets d'une classe en Java

Comment trier les objets d'une classe en Java

王林
王林avant
2019-12-11 17:51:453135parcourir

Comment trier les objets d'une classe en Java

Nous devons trier les objets de la classe en fonction d'un certain attribut (ou de plusieurs attributs) dans la classe. Il existe deux façons d'y parvenir. Une méthode est l'implémentation de la classe , puis appelez la méthode Comparable8742468051c85b06f0a0af9e3e506b5c pour le tri. Une autre méthode est que la classe n'implémente pas l'interface Collections.sort(List), mais utilise la méthode Comparable8742468051c85b06f0a0af9e3e506b5c lors du tri et implémente l'interface Comparator8742468051c85b06f0a0af9e3e506b5c Collections.sort(List, Comparator8742468051c85b06f0a0af9e3e506b5c)

Tutoriels vidéo d'apprentissage gratuits recommandés :

Tutoriels vidéo Java

Créez d'abord une classe d'étudiant simple :

public class Student {
    
    private String name;
    
    private int age;
 
    public Student() {}
 
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
}

1. Implémentez Comparable
public class Student implements Comparable<Student>{
 
    private String name;
 
    private int age;
 
    public Student() {}
 
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    /**
     * 将对象按姓名字典序升序排序
     * @param o
     * @return
     */
    @Override
    public int compareTo(Student o) {
        return this.name.compareTo(o.getName());
    }
 
    @Override
    public String toString() {
        return "Student{" +
                "name=&#39;" + name + &#39;\&#39;&#39; +
                ", age=" + age +
                &#39;}&#39;;
    }
}

2. Trier en implémentant l'interface Comparable8742468051c85b06f0a0af9e3e506b5c dans la méthode Collections.sort()

public class Client {
 
    public static void main(String[] args){
        List<Student> students = new ArrayList<>();
        students.add(new Student("a", 18));
        students.add(new Student("c", 19));
        students.add(new Student("b", 20));
 
        Collections.sort(students, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.getAge()>o2.getAge()? -1:(o1.getAge()==o2.getAge()? 0:1);
            }
        });
        for(Student student:students){
            System.out.println(student.toString());
        }
    }
 
}

Tutoriels d'articles associés recommandés :

Introduction à la programmation Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Minuterie de thread JavaArticle suivant:Minuterie de thread Java