[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
|