Maison >Java >javaDidacticiel >Comment utiliser la fonction TreeSet pour trier des ensembles en Java

Comment utiliser la fonction TreeSet pour trier des ensembles en Java

WBOY
WBOYoriginal
2023-06-26 18:11:421006parcourir

La fonction TreeSet en Java peut être utilisée pour trier des ensembles. Contrairement à d'autres ensembles, TreeSet trie les éléments selon leur ordre naturel. Ce qui suit présentera en détail comment utiliser la fonction TreeSet pour trier la collection.

  1. Introduction à TreeSet

TreeSet est un ensemble ordonné implémenté basé sur des arbres rouge-noir. TreeSet hérite de la classe AbstractSet et implémente l'interface NavigableSet. TreeSet implémente l'ordre naturel des éléments ou l'ordre par un objet Comparator transmis.

Pour TreeSet, les méthodes les plus importantes sont add(), remove(), contain() et d'autres méthodes. Ces méthodes sont implémentées en appelant des méthodes dans la classe AbstractSet. De plus, TreeSet implémente également plusieurs méthodes d'ensembles ordonnés telles que first(), last(), headSet(), tailSet(), subSet(), etc.

  1. Utilisez TreeSet pour trier des ensembles

Ce qui suit utilisera un exemple pour présenter comment utiliser TreeSet pour trier un ensemble. Nous utiliserons une classe Student et créerons une collection de plusieurs objets Student à trier.

Tout d'abord, nous devons définir la classe Student :

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

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

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public int compareTo(Student student) {
        return this.age - student.age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + ''' +
                ", age=" + age +
                '}';
    }
}

Dans le code ci-dessus, nous définissons une classe Student et implémentons l'interface Comparable. Nous définissons la méthode de classement naturel des éléments en implémentant la méthode compareTo().

Lorsque nous comparons deux objets Étudiant, nous comparons leurs âges car nous voulons trier les étudiants par âge.

Ensuite, nous créons une collection contenant plusieurs objets Étudiant :

Set<Student> students = new TreeSet<>();
students.add(new Student("张三", 20));
students.add(new Student("李四", 19));
students.add(new Student("王五", 22));
students.add(new Student("赵六", 21));

Nous pouvons voir que nous avons ajouté quatre objets Étudiant à la collection. Au lieu d'utiliser la méthode Collections.sort() pour trier la collection, nous utilisons la fonction TreeSet, qui trie automatiquement les éléments selon leur ordre naturel.

Enfin, nous pouvons utiliser la boucle for-each pour parcourir la collection et afficher les informations sur les élèves :

for (Student student : students) {
    System.out.println(student);
}

Les résultats finaux seront triés en fonction de l'âge des élèves, du plus petit au plus grand :

Student{name='李四', age=19}
Student{name='张三', age=20}
Student{name='赵六', age=21}
Student{name='王五', age=22}
  1. Tri personnalisé method

Si nous ne voulons pas trier selon l'ordre naturel des éléments, nous pouvons utiliser un objet Comparator pour personnaliser la méthode de tri. Le code suivant montre comment utiliser un objet Comparator pour personnaliser la méthode de tri :

Set<Student> students = new TreeSet<>(Comparator.comparing(Student::getName));
students.add(new Student("张三", 20));
students.add(new Student("李四", 19));
students.add(new Student("王五", 22));
students.add(new Student("赵六", 21));

Dans le code ci-dessus, nous avons transmis un objet Comparator lors de la création de l'objet TreeSet. Nous définissons la méthode de tri en appelant la méthode Comparator.comparing() et en utilisant la méthode getName() dans la classe Student. Cela signifie que nous trierons par nom d'étudiant.

Enfin, nous utilisons toujours la boucle for-each pour parcourir l'ensemble et afficher les informations de l'élève :

for (Student student : students) {
    System.out.println(student);
}

Les résultats finaux de sortie seront triés par nom d'élève de petit à grand :

Student{name='李四', age=19}
Student{name='张三', age=20}
Student{name='赵六', age=21}
Student{name='王五', age=22}
  1. Résumé

Utilisez la fonction TreeSet Le tri d'une collection est plus simple que les autres méthodes. Il triera automatiquement selon l'ordre naturel des éléments, ou vous pouvez personnaliser la méthode de tri en passant un objet Comparator. En maîtrisant l’utilisation de TreeSet, on peut trier plus facilement les collections en 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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn