ArrayList e HashTable

settembre 9, 2006

Nella guida si è visto come è possibile implementare strutture di uno stesso tipo di dato con gli array. Pur essendo molto utili e funzionali, non sempre sono la soluzione migliore per le vostre applicazioni. Potrebbe, ad esempio, esserci la necessità di immagazzinare dati di cui non si sappia a priori la quantità. Per questo è un ottimo sostituto l’ArrayList, che funziona allo steso modo di un array, ma dispone di alcune funzioni che facilitano moltissimo la stesura del programma.

Arraylist
L’arraylist è una classe, pertanto si dichiara come tale con la consueta sintassi:
Dim [nome] As New Arraylist
Come l’array, possiamo accedere a ogni suo elemento tramite un indice:
Dim A As New Arraylist
'...
Console.WriteLine(A(3))

Per modificare gli elementi di un arraylist, ci sono queste utili procedure e funzioni:

  • Add(x) : aggiunge l’elemento x all’arraylist
  • Remove(x) : rimuove l’elemento x dall’arraylist
  • RemoveAt(x) : rimuove l’elemento che si trova nella posizione x dell’arraylist
  • IndexOf(x) : restituisce l’indice (ossia la posizione) dell’elemento x
  • Contains(x) : restituisce vero se x è contenuto nell’arraylist, altrimenti falso
  • Clear : pulisce l’arraylist eliminando ogni elemento
  • Clone : restituisce una copia esatta dell’arraylist

Ad esempio:
Dim B As New Arraylist
'Aggiunge due elementi
B.Add("Ciao")
B.Add("Buongiorno")
'Manda un messaggio con ogni elemento della lista
For Each S As String In B
MsgBox(S)
Next
'Rimuove l'elemento 'Ciao'
B.Remove("Ciao")

Hashtable
L’Hashtable lavora quasi allo stesso modo, ma, invece di avere ogni elemento contraddistinto da un indice (numerico), ha ogni elemento contraddistinto da una chiave (stringa) che bisogna specificare come secondo parametro nella procedura Add e come unico parametro in Remove. E’ utile se bisogna utilizzare nomi anzichè numeri!