concept
Tout d'abord, jetons un coup d'œil à la collection de sets.
(01) SET est une interface héritée de la collection. Il s'agit d'une collection qui n'autorise pas les éléments en double.
(02) AbstractSet est une classe abstraite, qui hérite de l'abstractCollection. AbstractCollection met en œuvre la plupart des fonctions dans SET, offrant une commodité pour les classes d'implémentation SET.
(03) Hastset et Treeset sont deux classes d'implémentation de SET.
HashSet s'appuie sur HashMap, qui est en fait implémenté via HashMap. Les éléments du hashset sont en panne.
Treeset repose sur Treemap, qui est en fait implémenté via Treemap. Les éléments de Treeset sont commandés.
Par exemple:
Jetons un coup d'œil à l'utilisation des collections de décors en traversant les violations:
package com.sort; import java.util.hashset; Importer java.util.iterator; import java.util.set; / ** * Une collection qui ne contient pas d'éléments en double. Plus spécifiquement, SET ne contient pas d'éléments qui satisfont E1.Equals (E2), E1 et E2, * @Author propriétaire * * / public class Settest2 {public static void main (String [] args) {set <string> set = new HashSet <string> (); set.add ("a"); set.add ("b"); set.add ("c"); set.add ("d"); set.add ("e"); set.add ("e"); set.add ("e"); // Les données doubles ne peuvent pas être placées dans / ** * Méthode de traversée 1, Transfert itérative * / for (iterator <string> iterator = set.iterator (); iterator.hasnext ();) {system.out.print (iterator.next () + ""); } System.out.println (); System.out.println ("**************************"); / ** * pour la traversée de boucle améliorée * / pour (valeur de chaîne: set) {System.out.print (valeur + ""); }}} Remarque: le type de chaîne est placé dans la collection de jeux. Si nous mettons une instance de classe que nous définissons, tels que l'instance de classe de personne, nous devons ré-hashcode et les méthodes égales nous-mêmes et les réécrire avec nos propres champs clés, car lors de l'utilisation de HashSet, la méthode HashCode () sera appelée pour déterminer si la valeur de code de hachage de l'objet qui a été stocké dans la collection est cohérente avec la valeur de code de hachage de l'objet ajouté; S'il est incohérent, ajoutez-le directement; S'il est cohérent, comparez la méthode égale. Si la méthode égaux renvoie True, cela signifie que l'objet a été ajouté et qu'aucun nouvel objet ne sera ajouté, sinon il sera ajouté.