2012-07-04 38 views

Respuesta

45

Compruebe el código de abajo y ejecutarlo:

public class ListExample { 

    public static void main(String[] args) { 
     List<String> myList = new ArrayList<String>(); 
     myList.add("one"); 
     myList.add("two"); 
     myList.add("three"); 
     myList.add("four"); 
     myList.add("five"); 

     System.out.println("Inserted in 'order': "); 
     printList(myList); 
     System.out.println("\n"); 
     System.out.println("Inserted out of 'order': "); 

     // Clear the list 
     myList.clear(); 

     myList.add("four"); 
     myList.add("five"); 
     myList.add("one"); 
     myList.add("two"); 
     myList.add("three"); 

     printList(myList); 
    } 

    private static void printList(List<String> myList) { 
     for (String string : myList) { 
      System.out.println(string); 
     } 
    } 
} 

produce el siguiente resultado:

Inserted in 'order': 
one 
two 
three 
four 
five 


Inserted out of 'order': 
four 
five 
one 
two 
three 

Para obtener información detallada, consulte la documentación: List (Java Platform SE7)

+0

Gracias. El fragmento de código lo explica claramente cuando se ejecuta. – divinedragon

+5

+1 por incluir un enlace al documento de Java que explica claramente el orden. –

+15

Muestra de salida sería útil – nilesh

89

. ArrayList es una lista secuencial . Entonces, el orden de inserción y recuperación es el mismo.

Si agrega elementos durante la recuperación, la orden no será la misma.

+0

Si el OP "se inserta" al final, también se llama agregar. –

+3

@Kalai consejo muy extraño en parte "... o al final" – Ray

+9

¡La segunda afirmación no está clara para mí! – Adil

33

Si siempre agrega al final, cada elemento se agregará al final y permanecerá así hasta que lo cambie.

Si siempre inserta al principio, cada elemento aparecerá en el orden inverso al que los agregó.

Si las inserta en el medio, el orden será otra cosa.

0

Sí, sigue siendo el mismo. , pero ¿por qué no probarlo fácilmente? Haz una ArrayList, llénala y luego recupera los elementos.

+13

Sin embargo, eso no es una prueba. – YoTengoUnLCD

+0

El mismo orden es solo uno de los posibles resultados de la prueba. Si la implementación es blackbox, el mismo orden podría ser un caso específico. Ejemplo es lista ordenada. Si agrega elementos a la lista ordenada en el orden correcto, puede obtenerlos en orden ordenado (que es solo un caso particular), pero si los agrega en orden aleatorio, los ordena. Al probar ArrayList sin verificar la implementación solo se indicará "la orden más probable es la misma". – simar

6

Sí, siempre lo hará ser el mismo. Del documentation

Añade el elemento especificado al final de esta lista. Parámetros: e elementos que se añadirán a esta lista Devuelve: verdadero (según lo especificado por Collection.add (java.lang.Object))

ArrayList add() aplicación

public boolean More ...add(E e) { 
    ensureCapacity(size + 1); // Increments modCount!! 
    elementData[size++] = e; 
    return true; 
} 
Cuestiones relacionadas