Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 13604|Antwoord: 0

[JavaSE] Traversal van List-verzameling in Java en vergelijkende analyse van twee implementatieklassen

[Link kopiëren]
Geplaatst op 04-01-2015 13:29:38 | | |
[mw_shl_code=java,true]package com.sort;  
  
import java.util.ArrayList;  
import java.util.Iterator;  
import java.util.List;  
  
/**
* Drie soorten doorlopen van de lijst
* @author Eigenaar
*
*/  
publieke klasse ListTest {  
  
    publieke statische void main(String[] args) {  
         
        Lijst<String> lijst = nieuwe ArrayList<String>();  
         
        list.add("a");  
        list.add("b");  
        list.add("c");  
        list.add("c"); Dubbele gegevens kunnen worden toegevoegd  
         
        Traverseringsmethode 1  
        for(Iterator<String> iterator = list.iterator(); iterator.hasNext(); ){  
            Stringwaarde = iterator.next();  
              
            System.out.println(waarde);  
        }  
         
        Traverseringsmethode 2  
        for(Stringwaarde : lijst){  
            System.out.println(waarde);  
        }  
         
        Traversalmethode 3  
        voor(int i=0; i<list.size(); i++){  
            System.out.println(list.get(i));  
        }  
         
    }  
} [/mw_shl_code]


Vergelijkende analyse van de drie traversen:

Methode 1 doorloop:

Tijdens de uitvoering wordt data locking uitgevoerd, de prestaties worden iets slechter, en als je een element tijdens de loop wilt verwijderen, kun je alleen de it.reable-methode aanroepen.   

Methode 2 Traversering:

Noem het eerste type intern

Methode 3: Traversering:

Het is niet intern vergrendeld, wat het meest efficiënt is, maar bij het schrijven van multithreading moet het probleem van gelijktijdige bewerkingen worden meegenomen

De twee belangrijkste implementaties van de List-interface, ArrayList en LinkedList, kunnen op deze manier worden doorkruist

Vergelijkende analyse van ArrayList versus LinkedList
a) De onderliggende laag van ArrayList wordt geïmplementeerd met arrays, en de onderliggende laag van LinkedList is geïmplementeerd met bidirectionele gekoppelde lijsten.
b) Bij het uitvoeren van invoeg- of verwijderingsbewerkingen is het beter om LinkedList te gebruiken.
c) Bij het uitvoeren van een zoekoperatie is het beter om ArrayList te gebruiken.


Om het maar bot te zeggen: het is sequentiële opslag en ketenopslag in de datastructuur




Vorig:Gebruik van de jstl-tag &lt;c:if&gt;
Volgend:java:list和set集合的遍历
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com