Angenommen, ich füge 5 Zeichenfolgen in eine ein ArrayList
. Wird die Reihenfolge des Einfügens und Abrufens aus ArrayList
dem gleich sein?
Angenommen, ich füge 5 Zeichenfolgen in eine ein ArrayList
. Wird die Reihenfolge des Einfügens und Abrufens aus ArrayList
dem gleich sein?
Antworten:
Überprüfen Sie den folgenden Code und führen Sie ihn aus:
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);
}
}
}
Erzeugt die folgende Ausgabe:
Inserted in 'order':
one
two
three
four
five
Inserted out of 'order':
four
five
one
two
three
Detaillierte Informationen finden Sie in der Dokumentation: List (Java Platform SE7)
Ja . ArrayList ist eine sequentielle Liste . Die Reihenfolge beim Einfügen und Abrufen ist also dieselbe.
Wenn Sie während des Abrufs Elemente hinzufügen , bleibt die Reihenfolge nicht gleich.
Wenn Sie immer am Ende hinzufügen, wird jedes Element am Ende hinzugefügt und bleibt so, bis Sie es ändern.
Wenn Sie immer am Anfang einfügen, wird jedes Element in der umgekehrten Reihenfolge angezeigt, in der Sie es hinzugefügt haben.
Wenn Sie sie in die Mitte einfügen, ist die Reihenfolge etwas anderes.
Ja, es wird immer das gleiche sein. Aus der Dokumentation
Hängt das angegebene Element an das Ende dieser Liste an. Parameter: e Element, das an diese Liste angehängt werden soll Rückgabe: true (wie von Collection.add (java.lang.Object) angegeben)
ArrayList- add()
Implementierung
public boolean More ...add(E e) {
ensureCapacity(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
}
Ja, es bleibt gleich. aber warum nicht einfach testen? Erstellen Sie eine ArrayList, füllen Sie sie aus und rufen Sie die Elemente ab!