ArrayList n'a pas de méthode de déduplication emballée. Par exemple, pour une liste de billets de [2, 5, 2, 3, 2, 4], je souhaite supprimer les éléments en double.
Je ne veux pas faire l'instruction si longtemps, et je ne veux pas utiliser la méthode pour la boucle pour le dédupliquer. Ensuite, je peux d'abord envisager de convertir le ArrayList en un hashset temporaire, puis de convertir le hashset temporaire en ArrayList, car les éléments du hashset ne sont pas reproductibles! Quant à ce que sont ArrayList et Hashset, il a été expliqué très clairement dans "Explication détaillée de la classe de collections en Java", donc je ne le répéterai pas ici.
Vous pouvez écrire de cette façon:
HashSet <Integer> hashSet_Temp = new HashSet <Integer> (ArrayList);
arrayList = new ArrayList <Integer> (hashset_temp);
Il peut également être écrit de manière plus concise, et même la variable temporaire HashSet_Temp n'est pas nécessaire:
arrayList = new ArrayList <Integer> (new HashSet <Integer> (ArrayList));
Après cela, l'élément d'ArrayList devient [2, 3, 4, 5]
Ensuite, je partagerai avec vous deux façons d'éliminer les charges lourdes de ArrayList
// répéter la méthode un
ARRAYLIST PRIVÉ REPLOVEUPLICATENUM (ArrayList list) {list.sort (); for (int i = 0; i <list.Count - 1; i ++) {if (list [i] .equals (list [i + 1])) {list.removeat (i); // élément déducteur i--; }} Retour List; } // répéter la méthode deux
Private ArrayList removeSame (ArrayList list) {// La phrase écrite ci-dessus est redondante, c'est le final pour (int i = 0; i <list.count - 1; i ++) {for (int j = i + 1; j <list.count; j ++) {if (list [i] .equals (list [j])) {list.Removeat (j); J-; }}} liste de retour; }Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.