|
Il existe trois façons de traverser une Liste
<A> Liste de listes = nouvelle Liste <A>de tableaux() ; list.add(nouveau A()) ; list.add(nouveau A()) ; ...
Le premier type : for(<A>Iterator it = list.iterator() ; it.hasNext() ; ) { .... } Cette voie est en cycle En même temps, si vous souhaitez supprimer un élément dans le processus de plaisir, vous ne pouvez appeler que la méthode it.remove, vous ne pouvez pas utiliser la méthode list.remove, sinon il y aura une erreur d’accès concurrent. Mais la compatibilité est la meilleure, adaptée à la collection Collection
Le deuxième type : for(A a : list) { ..... } Pour chaque méthode, il reste un itérateur, la première est appelée en interne, et la soupe n’est pas modifiée, et il existe d’autres limitations à cette méthode circulaire, il n’est donc pas recommandé de l’utiliser Il ne peut être utilisé que au-dessus de JK1.5 avec une faible compatibilité. Le Set est préférable d’utiliser celui-ci.
Le troisième type : for(int i=0 ; i<list.size() ; i++) { A a = list.get(i) ; ... } pour boucle, parcourir le contenu d’une collection List ne fonctionne que pour List, car List est une collection ordonnée , l’interne n’est pas verrouillé, la plus grande efficacité, mais lors de l’écriture de multithreading, le problème des opérations concurrentes doit être pris en compte ! Parcourir une collection de sets est de la même façon qu’une liste, mais vous ne pouvez pas utiliser une boucle for pour itérer dans une collection de sets car il n’y a pas de méthode get() dans la collection de sets. Mais il peut être bouclé avec des améliorations Collection Traverse the Set Set<String> set = new HashSet<String>() ; set.add(« qqq ») ; set.add(« www ») ; set.add(« eee ») ; set.add(« rrr ») ;
pour(String s : set){ System.out.println(« set="+s) ; }
|