Ist die Bestellung eines Arraylist garantiert in C # .NET?
Frage
Wenn ich eine Arraylist in C # .NET bin mit, ist die Reihenfolge garantiert die gleiche wie die Reihenfolge bleiben ich Elemente hinzufügen?
Lösung
Ja, werden die Elemente immer bis zum Ende hinzugefügt (es sei denn, Sie nichts anderes angeben, zum Beispiel mit einem Aufruf von Einfügen ). Mit anderen Worten, wenn Sie das tun:
int size = list.Count;
int index = list.Add(element);
Assert.AreEqual(size, index); // Element is always added at the end
Assert.AreEqual(element, list[index]); // Returned index is position in list
Die Position wird sich ändern, wenn Sie irgendwelche früheren Elemente entfernen oder neue Elemente vor sich, natürlich einfügen.
Gibt es einen guten Grund für Sie ArrayList
zu verwenden, anstatt List<T>
durch die Art und Weise? Nicht generische Sammlungen sind so 2003 ...
(Die Reihenfolge, in List<T>
stabil ist auch, übrigens.)
Andere Tipps
Ja, es ist, es sei denn, einige Stück Code den Auftrag, beispielsweise durch Änderungen Swapping.
Ja, es ist. Da es als Array gespeichert wird.
Andere Objekte sind
- Garantierte Ordnung
- Random Zugriff. Sie können durch den Index in OS jedes Element zugreifen (1)
- Langsam Einfügen und Löschen am Anfang und Mitte.
- unsortiert. (Sortierung soll O nehmen (n log n) mit quicksort oder ähnlich)
Ja. [Dumme Antwort Längenbegrenzung]
Wenn Sie ein Element zu einem Arraylist hinzufügen, wird das Element immer an diesem Index bleiben. Es sei denn natürlich, wenn Sie es ändern.
(der Rahmen könnte den Speicher neu ordnen, aber Ihr Index bleibt immer gleich)