Vergleich zwischen Collection und Array
Zur Navigation springen
Zur Suche springen
Das Anlegen, Befüllen und Auslesen wird bei Collections und eindimensionalen Arrays sehr ähnlich gehandhabt:
Schritt | Array | Anmerkungen | Collection | Anmerkungen |
---|---|---|---|---|
Deklaration |
Dim strArray() As String |
Dim colCollection As Collection |
||
Vor dem ersten Einsatz |
ReDim strArray(3) |
Die Anzahl der erwarteten Einträge muss bekannt sein. Da das Array 0-basiert ist, wird hier der höchste erwartete Index angegeben (Anzahl - 1). |
Set colCollection = New Collection |
Die Collection muss initialisiert werden, damit sie die Elemente aufnehmen kann. |
Erstes Element |
strArray(0) = "Max" |
Das Array enthält nach der Dimensionierung die geforderte Anzahl von leeren Plätzen. Jedes Element wird einem Platz zugeordnet. |
colCollection.Add "Max" |
Die Collection ist ursprünglich leer, einzelne Elemente werden mit 'Add' hinzugefügt. |
Weitere Elemente |
strArray(1) = "Moritz" strArray(2) = "Hempel" strArray(3) = "Bolte" |
colCollection.Add "Moritz" colCollection.Add "Hempel" colCollection.Add "Bolte" |
||
Werte abfragen |
For lngIndex = 0 To UBound(strNames) Debug.Print strArray(lngIndex) Next lngIndex |
Array ist 0-basierend, UBound ermittelt letzten Index. |
For lngIndex = 1 To colNames.Count Debug.Print colNames.Item(lngIndex) Next lngIndex |
Collection ist 1-basierend, Count ermittelt Anzahl der Elemente |
Große Unterschiede offenbaren sich jedoch, wenn man die zusätzlichen Parameter der Add-Methode zur Positionierung eines Elementes und der Vergabe eines eindeutigen Schlüssels oder die Vorgehensweise beim Verschieben von Elementen betrachtet:
Schritt | Array | Anmerkungen | Collection | Anmerkungen |
---|---|---|---|---|
Element löschen | ||||
Neues Element positionieren | ||||
Positionen vertauschen | ||||
Schlüssel verwenden |