Maison > Java > javaDidacticiel > Méthodes statiques pour les listes et les collections

Méthodes statiques pour les listes et les collections

WBOY
Libérer: 2024-07-16 16:57:12
original
533 Les gens l'ont consulté

La classe Collections contient des méthodes statiques pour effectuer des opérations courantes dans une collection et une liste. La section a introduit plusieurs méthodes statiques dans la classe Collections pour les listes de tableaux. La classe Collections contient les éléments sort, binarySearch, reverse, shuffle, copie , et les méthodes fill pour les listes, et les méthodes max, min, disjoint et fréquence pour les collections, comme le montre la figure ci-dessous.

Image description

Vous pouvez trier les éléments comparables dans une liste dans leur ordre naturel avec la méthode compareTo dans l'interface Comparable. Vous pouvez également spécifier un comparateur pour trier les éléments. Par exemple, le code suivant trie les chaînes dans une liste.

Liste list = Arrays.asList("rouge", "vert", "bleu");
Collections.sort(liste);
System.out.println(liste);

La sortie est [bleu, vert, rouge].

Le code précédent trie une liste par ordre croissant. Pour le trier par ordre décroissant, vous pouvez simplement utiliser la méthode Collections.reverseOrder() pour renvoyer un objet Comparator qui classe les éléments dans l'ordre inverse de leur ordre naturel. Par exemple, le code suivant trie une liste de chaînes par ordre décroissant.

Liste list = Arrays.asList("jaune", "rouge", "vert", "bleu");
Collections.sort(liste, Collections.reverseOrder());
System.out.println(liste);

La sortie est [jaune, rouge, vert, bleu].

Vous pouvez utiliser la méthode binarySearch pour rechercher une clé dans une liste. Pour utiliser cette méthode, la liste doit être triée par ordre croissant. Si la clé n'est pas dans la liste, la méthode renvoie -(point d'insertion +1). Rappelez-vous que le point d'insertion est l'endroit où l'élément se trouverait dans la liste s'il était présent. Par exemple, le code suivant recherche les clés dans une liste d'entiers et une liste de chaînes.

Liste list1 = Arrays.asList(2, 4, 7, 10, 11, 45, 50, 59, 60, 66);
System.out.println("(1) Index : " + Collections.binarySearch(list1, 7));
System.out.println("(2) Index : " + Collections.binarySearch(list1, 9));

Liste list2 = Arrays.asList("bleu", "vert", "rouge");
System.out.println("(3) Index : " +
Collections.binarySearch(list2, "red"));
System.out.println("(4) Index : " +
Collections.binarySearch(list2, "cyan"));

La sortie du code précédent est :

(1) Indice : 2
(2) Indice : -4
(3) Indice : 2
(4) Indice : -2

Vous pouvez utiliser la méthode reverse pour inverser les éléments d'une liste. Par exemple, le code suivant affiche [bleu, vert, rouge, jaune].

Liste list = Arrays.asList("jaune", "rouge", "vert", "bleu");
Collections.reverse(liste);
System.out.println(liste);

Vous pouvez utiliser la méthode shuffle(List) pour réorganiser aléatoirement les éléments d'une liste. Par exemple, le code suivant mélange les éléments dans list.

Liste list = Arrays.asList("jaune", "rouge", "vert", "bleu");
Collections.shuffle(liste);
System.out.println(liste);

Vous pouvez également utiliser la méthode shuffle(List, Random) pour réorganiser de manière aléatoire les éléments d'une liste avec un objet Random spécifié. L'utilisation d'un objet Random spécifié est utile pour générer une liste avec des séquences d'éléments identiques pour la même liste d'origine. Par exemple, le code suivant mélange les éléments dans list.

Liste list1 = Arrays.asList("jaune", "rouge", "vert", "bleu");
Liste list2 = Arrays.asList("jaune", "rouge", "vert", "bleu");
Collections.shuffle(list1, new Random(20));
Collections.shuffle(list2, new Random(20));
System.out.println(list1);
System.out.println(list2);

Vous verrez que list1 et list2 ont la même séquence d'éléments avant et après le brassage.

Vous pouvez utiliser la méthode copy(det, src) pour copier tous les éléments d'une liste source vers une liste de destination sur le même index. La liste de destination doit être aussi longue que la liste source. S'il est plus long, les éléments restants de la liste source ne sont pas affectés. Par exemple, ce qui suit
le code copie list2 vers list1.

Liste list1 = Arrays.asList("jaune", "rouge", "vert", "bleu");
Liste list2 = Arrays.asList("blanc", "noir");
Collections.copy(list1, list2);
System.out.println(list1);

La sortie pour list1 est [blanc, noir, vert, bleu]. La méthode copy effectue une copie superficielle : seules les références des éléments de la liste source sont copiées.

Vous pouvez utiliser la méthode nCopies(int n, Object o) pour créer une liste immuable composée de n copies de l'objet spécifié. Par exemple, le code suivant crée une liste avec cinq objets Calendar.

Liste list1 = Collections.nCopies(5, new GregorianCalendar(2005, 0, 1));

La liste créée à partir de la méthode nCopies est immuable, vous ne pouvez donc pas ajouter, supprimer ou mettre à jour des éléments dans la liste. Tous les éléments portent les mêmes références.

Vous pouvez utiliser la méthode fill(List list, Object o) pour remplacer tous les éléments de la liste par l'élément spécifié. Par exemple, le code suivant affiche [noir, noir, noir].

Liste list = Arrays.asList("rouge", "vert", "bleu");
Collections.fill(liste, "noir");
System.out.println(liste);

Vous pouvez utiliser les méthodes max et min pour trouver les éléments maximum et minimum dans une collection. Les éléments doivent être comparables grâce à l'interface Comparable ou à l'interface Comparateur. Par exemple, le code suivant affiche les chaînes les plus grandes et les plus petites d'une collection.

Collection collection = Arrays.asList("rouge", "vert", "bleu");
System.out.println(Collections.max(collection));
System.out.println(Collections.min(collection));

La méthode disjoint(collection1, collection2) renvoie true si les deux collections n'ont aucun élément en commun. Par exemple, dans le code suivant, disjoint(collection1, collection2) renvoie false, mais disjoint(collection1, collection3) renvoie true .

Collection collection1 = Arrays.asList("rouge", "cyan");
Collection collection2 = Arrays.asList("rouge", "bleu");
Collection collection3 = Arrays.asList("pink", "tan");
System.out.println(Collections.disjoint(collection1, collection2));
System.out.println(Collections.disjoint(collection1, collection3));

La méthode fréquence(collection, élément) trouve le nombre d'occurrences de l'élément dans la collection. Par exemple, fréquence(collection, "red") renvoie 2 dans le code suivant.

Collection collection = Arrays.asList("red", "cyan", "red");
System.out.println(Collections. Frequency(collection, "red"));

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!

source:dev.to
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal