2011-01-22 10 views
15

si utilizo un bucle for-each en una lista vinculada en java, ¿se garantiza que voy a iterar sobre los elementos en el orden en el que aparecen en la lista?java - iterar una lista vinculada

+3

** ** Sí que es .. –

Respuesta

9

Se garantiza que la lista vinculada funciona en orden secuencial.

Desde el documentation

Colección ordenada (también conocida como una secuencia ). El usuario de esta interfaz tiene un control preciso sobre dónde se inserta cada elemento en la lista . El usuario puede acceder a los elementos por su índice entero (posición en la lista), y buscar elementos en la lista.

iterator() un iterador sobre los elementos de esta lista en la secuencia apropiada.

7

Como dice la definición de Linkedlist, se trata de una secuencia y tiene la garantía de ordenar los elementos.

por ejemplo:

import java.util.LinkedList; 

public class ForEachDemonstrater { 
    public static void main(String args[]) { 
    LinkedList<Character> pl = new LinkedList<Character>(); 
    pl.add('j'); 
    pl.add('a'); 
    pl.add('v'); 
    pl.add('a'); 
    for (char s : pl) 
     System.out.print(s+"->"); 
    } 
} 
18

encontré 5 maneras principales para iterar sobre una lista enlazada en Java (incluyendo el camino de Java 8):

  1. bucle For
  2. mejorada para Loop
  3. While Loop
  4. iterador
  5. flujo de Colecciones (+) Util (Java8)

bucle For

LinkedList<String> linkedList = new LinkedList<>(); 
     System.out.println("==> For Loop Example."); 
     for (int i = 0; i < linkedList.size(); i++) { 
      System.out.println(linkedList.get(i)); 
     } 

ciclo mejorado

for (String temp : linkedList) { 
      System.out.println(temp); 
     } 

While

int i = 0; 
     while (i < linkedList.size()) { 
      System.out.println(linkedList.get(i)); 
      i++; 
     } 

iterador

Iterator Iterator = linkedList.iterator(); 
     while (Iterator.hasNext()) { 
      System.out.println(Iterator.next()); 
      } 

corriente de recogida (+) Util (Java 8)

linkedList.forEach((temp) -> { 
      System.out.println(temp); 
     }); 
+0

Genial. No sabía sobre 'LinkedList.size()'. +1. – roottraveller

Cuestiones relacionadas