2017-08-08 4 views
-1

Wir können Linked List mit Iterator und For-Schleife drucken. Wie unterscheidet es sich hinsichtlich der Speicherzuordnung? Welche ist effektiver?Wirksame Methode zum Drucken verknüpfter Liste, soweit Speicher betroffen ist

public class Demo { 
    public static void main(String[] args) { 
     LinkedList<String> placesToVisit = new LinkedList<String>(); 
     placesToVisit.add("Sydney"); 
     placesToVisit.add("Melbourne"); 
     placesToVisit.add("Brisbane"); 
     placesToVisit.add("Perth"); 

     printListWithoutFor(placesToVisit); 
     printListWithFor(placesToVisit); 

    } 

    private static void printListWithoutFor(LinkedList<String> linkedList) { 
     Iterator<String> i = linkedList.iterator(); 
     while (i.hasNext()) { 
      System.out.println("Now visiting " + i.next()); 
     } 
     System.out.println("========================="); 
    } 

    private static void printListWithFor(LinkedList<String> linkedList){ 
     for (int i=0; i<linkedList.size(); i++){ 
      System.out.println("Now visiting " + linkedList.get(i)); 
     } 
    } 
} 
+0

Ein Iterator ist besser als eine Schleife. Sie können weitere Informationen finden [hier] (https://stackoverflow.com/questions/22267919/iterator-vs-for) –

+0

Perfekt. Vielen Dank. – jParmar

+0

Ein Iterator ist besser als eine Schleife. Weitere Informationen finden Sie [hier] (https://stackoverflow.com/questions/22267919/iterator-vs-for) –

Antwort

1

Drucken mit Iterator ist mehr Zeit effizient (da es nur einmal die verknüpfte Liste iteriert, wobei jede linkedList.get(i) Teil Iteration über die Liste erfordert), auch wenn es ein wenig mehr Speicher benötigt (für die Zuweisung der Iterator). Ich würde keine for-Schleife über Iterator wählen, nur um diese Instanzzuweisung zu speichern.

In Bezug auf die Raumkomplexität erfordert beide Möglichkeiten O(1) Platz.

Daher sollten Sie die Methode mit der besseren Zeit Komplexität bevorzugen - der Druck mit Iterator dauert O(n) Zeit, während die for-Schleife dauert O(n^2) Zeit.

0

Nur nicht nur zur Erinnerung, sondern auch zur Vermeidung von Indexierungsproblemen können Sie Iterator besser als Schleifen finden. Weitere Informationen finden Sie unter here

Verwandte Themen