Maison  >  Article  >  Java  >  Comment utiliser la fonction TreeSet en Java pour les opérations d'ensemble ordonné

Comment utiliser la fonction TreeSet en Java pour les opérations d'ensemble ordonné

王林
王林original
2023-06-26 14:51:101769parcourir

TreeSet de Java est un ensemble ordonné implémenté basé sur des arbres rouge-noir. Sa particularité est que les éléments sont triés par ordre de taille et que les éléments peuvent être rapidement ajoutés, supprimés et recherchés. Cet article explique comment utiliser la fonction TreeSet en Java pour effectuer des opérations d'ensemble ordonnées afin qu'elles puissent être mieux appliquées dans la programmation réelle.

1. Opérations de base de TreeSet

1. Créer un objet TreeSet

Pour utiliser TreeSet, vous devez d'abord créer un objet TreeSet. Vous pouvez utiliser le constructeur sans paramètre pour créer un TreeSet vide, ou vous pouvez spécifier un Comparator pour personnaliser le classement lors de la création de l'objet TreeSet.

Exemple de code :

TreeSet<Integer> set = new TreeSet<>();
TreeSet<String> set2 = new TreeSet<>(new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        // 自定义排序规则
        return o1.compareToIgnoreCase(o2);
    }
});

2. Ajouter des éléments

Ajoutez des éléments à TreeSet via la méthode add(). TreeSet triera automatiquement les éléments par ordre de taille et les mêmes éléments ne seront enregistrés qu'une seule fois.

Exemple de code :

set.add(3);
set.add(1);
set.add(2);
set.add(3);
// 结果为[1, 2, 3]
System.out.println(set);

3. Supprimer des éléments

Vous pouvez utiliser la méthode Remove() pour supprimer des éléments dans un TreeSet.

Exemple de code :

set.remove(3);
// 结果为[1, 2]
System.out.println(set);

4. Déterminez si un élément existe

Vous pouvez utiliser la méthode contain() pour déterminer si un élément existe dans le TreeSet.

Exemple de code :

boolean contains = set.contains(2);
// 结果为true
System.out.println(contains);

5. Obtenez le nombre d'éléments

Vous pouvez utiliser la méthode size() pour obtenir le nombre d'éléments dans le TreeSet.

Exemple de code :

int size = set.size();
// 结果为2
System.out.println(size);

6. Traverser les éléments

Vous pouvez utiliser la méthode for loop ou forEach() pour parcourir les éléments du TreeSet.

Exemple de code :

for (Integer i : set) {
    System.out.print(i + " ");
}
System.out.println();

set.forEach(System.out::println);

Résultat de sortie :

1 2 
1
2

2 Opérations avancées de TreeSet

1 Obtenez le premier élément et le dernier élément

Vous pouvez utiliser les méthodes first() et last() pour obtenir le premier. élément dans le TreeSet, un élément et le dernier élément.

Exemple de code :

Integer first = set.first();
Integer last = set.last();
// 结果为1 2
System.out.println(first + " " + last);

2. Obtenez un sous-ensemble

Vous pouvez utiliser la méthode subSet() pour obtenir un sous-ensemble de TreeSet, qui contient des éléments de fromElement (inclus) à toElement (exclusif). Si fromElement n’est pas spécifié, cela signifie commencer à partir du premier élément du TreeSet.

Exemple de code :

TreeSet<Integer> subSet = (TreeSet<Integer>) set.subSet(1, 2);
// 结果为[1]
System.out.println(subSet);

TreeSet<String> subSet2 = (TreeSet<String>) set2.subSet("A", "c");
// 结果为[b, C]
System.out.println(subSet2);

Il convient de noter que si le sous-ensemble change, le TreeSet d'origine changera également.

3. Obtenir un sous-ensemble d'éléments de tête ou de queue

Vous pouvez utiliser la méthode headSet() et la méthode tailSet() pour obtenir un sous-ensemble des éléments de tête (à l'exclusion de toElement) ou de queue (y compris fromElement) d'un TreeSet.

Exemple de code :

TreeSet<Integer> headSet = (TreeSet<Integer>) set.headSet(2);
// 结果为[1]
System.out.println(headSet);

TreeSet<String> tailSet = (TreeSet<String>) set2.tailSet("b");
// 结果为[b, C]
System.out.println(tailSet);

Notez également que si le sous-ensemble change, le TreeSet d'origine changera également.

4. Obtenez des éléments plus petits ou plus grands que l'élément spécifié

Vous pouvez utiliser la méthode lower(), la méthode floor(), la méthode upper() et la méthode plafond() pour obtenir les éléments qui sont plus petits ou plus grands que l'élément spécifié.

Exemple de code :

Integer lower = set.lower(2);
Integer floor = set.floor(2);
Integer higher = set.higher(1);
Integer ceiling = set.ceiling(1);
// 结果为1 2 2 1
System.out.println(lower + " " + floor + " " + higher + " " + ceiling);

Il convient de noter que :

  • La différence entre la méthode lower() et la méthode floor() est la suivante : la méthode lower() obtient le plus grand élément plus petit que l'élément spécifié, c'est-à-dire , l'élément le plus grand plus petit que l'élément spécifié ; La méthode floor() obtient l'élément le plus proche qui est plus petit que l'élément spécifié, c'est-à-dire l'élément le plus proche qui est inférieur ou égal à l'élément spécifié.
  • La différence entre la méthode upper() et la méthode plafond() est la suivante : la méthode upper() obtient le plus petit élément plus grand que l'élément spécifié, c'est-à-dire le plus petit élément plus grand que l'élément spécifié while ; la méthode plafond() obtient l'élément le plus proche qui est plus grand que l'élément spécifié, c'est-à-dire l'élément le plus proche qui est supérieur ou égal à l'élément spécifié.

3. Résumé

Cet article présente les opérations de base et les opérations avancées de la fonction TreeSet en Java. Vous pouvez sélectionner la méthode d'opération correspondante en fonction des besoins réels pour effectuer des opérations de collecte ordonnées. Il convient de noter que lors de l'utilisation des méthodes subSet(), headSet() et tailSet(), si le sous-ensemble change, le TreeSet d'origine changera également, vous devez donc garder cela à l'esprit.

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