[mw_shl_code=java,true]package com.sort ;
import java.util.ArrayList ; import java.util.Iterator ; importer java.util.List ;
/** * Trois types de parcours de la liste * @author Propriétaire
* */ classe publique ListTest {
public static void main(String[] args) {
<String> Liste de listes = nouvelle Liste <String>de tableaux() ;
list.add(« a ») ; list.add(« b ») ; list.add(« c ») ; list.add(« c ») ; Des données en double peuvent être ajoutées
Méthode de traversée 1 for(<String>Iterator iterator = list.iterator() ; iterator.hasNext() ; ){ Valeur de la chaîne = iterator.next() ;
System.out.println(value) ; }
Méthode de traversée 2 for(String value : list){ System.out.println(value) ; }
Méthode de traversée 3 for(int i=0 ; i<list.size() ; i++){ System.out.println(list.get(i)) ; }
} } [/mw_shl_code]
Analyse comparative des trois traversées :
Parcours de la méthode 1 : Lors de l’exécution, le verrouillage des données sera effectué, les performances seront légèrement inférieures, et si vous souhaitez supprimer un élément pendant la boucle, vous ne pouvez appeler que la méthode it.remove.
Parcours de la méthode 2 : Appelez le premier type en interne
Méthode 3 : Déplacement : Il n’est pas verrouillé en interne, ce qui est le plus efficace, mais lors de l’écriture de multithreading, le problème des opérations concurrentes doit être pris en compte
Les deux principales implémentations de l’interface List, ArrayList et LinkedList, peuvent être parcourues de cette manière Analyse comparative entre ArrayList et LinkedList a) La couche sous-jacente d’ArrayList est implémentée avec des tableaux, et la couche sous-jacente de LinkedList est implémentée avec des listes chaînées bidirectionnelles. b) Lors des opérations d’insertion ou de suppression, il est préférable d’utiliser LinkedList. c) Lors d’une opération de recherche, il est préférable d’utiliser ArrayList.
Pour être franc, il s’agit de stockage séquentiel et de stockage en chaîne dans la structure de données
|