Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 13604|Répondre: 0

[JavaSE] Parcours de la collecte de listes en Java et analyse comparative de deux classes d’implémentation

[Copié le lien]
Publié sur 04/01/2015 13:29:38 | | |
[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




Précédent:Utilisation du tag jstl &lt;c :if &gt;
Prochain:java:list和set集合的遍历
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com