4.6 Datenstruktur ArrayList 

Leichter ändern
Eine ArrayList ähnelt einem Datenfeld. Allerdings können Elemente leichter hinzugefügt, eingefügt oder entfernt werden. Außerdem kann eine ArrayList Elemente unterschiedlichen Typs enthalten. Die einzelnen Elemente haben einen Index.
In Projekt DSArrayList (siehe auch Abbildung 4.29) werden einige Operationen mit ArrayLists verdeutlicht.
Abbildung 4.29 Operationen mit einer ArrayList
Der Programmcode:
Public Class Form1 Dim a As New ArrayList Private Sub cmdAnzeigen_Click(...) Handles ... lstA.Items.Clear() a.Clear() ' Elemente hinzufügen a.Add(4) a.Add(7.5) a.Add("Hallo") a.Add(7.5) Ausgabe() ' Elemente einfügen a.Insert(2, "Salut") Ausgabe() ' Elemente suchen lstA.Items.Add("Position von 7.5: " & a.IndexOf(7.5)) lstA.Items.Add("Position von 7.5: " & a.LastIndexOf(7.5)) ' Element mit bestimmtem Wert entfernen a.Remove(7.5) Ausgabe() ' Element an bestimmter Position entfernen a.RemoveAt(1) Ausgabe() End Sub Private Sub Ausgabe() Dim aus As String Dim i As Integer aus = "Elemente: " For i = 0 To a.Count – 1 aus &= a(i) & " " Next lstA.Items.Add(aus) End Sub End Class
Listing 4.21 Projekt »DSArrayList«
Zur Erläuterung:
- Die ArrayList a wurde mit klassenweiter Gültigkeit deklariert. ArrayLists können aber auch innerhalb einer Prozedur deklariert werden.
- Die Listbox zur Ausgabe und die ArrayList werden jeweils mithilfe der Methode Clear() geleert. Dies ist nützlich, falls der Benutzer mehrmals den Button betätigt.
Add()
- Die Methode Add() dient zum Hinzufügen von Elementen an das Ende der ArrayList.
- In der allgemeinen Prozedur Ausgabe() wird die ArrayList mithilfe einer For-Schleife durchlaufen.
Insert()
- Mit Hilfe der Methode Insert() können Elemente an beliebiger Stelle mit Hilfe des Index eingefügt werden. Alle Elemente hinter dem eingefügten Element rücken nach hinten, der Index wird jeweils um 1 erhöht.
Remove()
- Die Methode Remove() dient zum Löschen des ersten Elements, das den angegebenen Wert hat. Alle Elemente hinter dem gelöschten Element rücken nach vorne, der Index wird jeweils um 1 vermindert.
RemoveAt()
- Durch die Methode RemoveAt() können Elemente mithilfe des Index gelöscht werden. Wie bei Remove() rücken alle Elemente hinter dem gelöschten Element nach vorne, der Index wird um 1 vermindert.