1. ArrayList
classe
Oggi esploreremo la ArrayList
classe. Questa è la prima di diverse classi note come raccolte . In Java, le collezioni sono un argomento così ampio e utile che a loro è dedicata un'intera ricerca di CodeGym.
Per comprendere appieno come sono strutturate le raccolte e tutte le loro sfumature, devi prima imparare OOP, interfacce, ereditarietà, le basi del multithreading e molto altro.
Quindi oggi faremo solo conoscenza con il tipo più semplice di raccolta. Ma a un livello abbastanza profondo da farti capire come usarlo e come funziona. Allora, incontra la ArrayList
collezione .
Il retroscena
Inizierò con un piccolo background. Ai programmatori non piaceva davvero un aspetto degli array: il fatto che la loro dimensione non può essere modificata. Cosa succede se devi memorizzare altri tre elementi in un array, ma c'è solo una cella vuota?
L'unica soluzione ai limiti di spazio di un array era creare un array molto grande per contenere tutti gli elementi che potresti aver bisogno di memorizzare. Ma questo di solito era uno spreco di memoria. Se un array di solito conteneva due o tre elementi ma c'era anche una minima possibilità che fosse necessario memorizzarne 100, allora era necessario creare un array con la capacità di memorizzarne 100.
Quindi cosa hanno escogitato i programmatori? Hanno scritto la ArrayList
classe, che ha svolto lo stesso lavoro della Array
classe, ma era ridimensionabile.
Classe ArrayList
Il nome della ArrayList
classe è formato da due parole: Array + List. Array
è un array ed List
è una lista.
Ogni ArrayList
oggetto contiene un normale array di elementi. Quando leggi elementi da un ArrayList
, l'oggetto li recupera dal suo array interno. Quando scrivi elementi, li scrive nell'array interno.
La classe ArrayList non ha tutti gli svantaggi che hanno gli array. Sa come:
- Memorizza elementi di un tipo specifico
- Ridimensiona dinamicamente l'elenco
- Aggiungi elementi alla fine dell'elenco
- Inserisci gli elementi all'inizio o al centro dell'elenco
- Rimuovi gli elementi da qualsiasi punto dell'elenco
Per maggiori dettagli, vedere di seguito:
2. Creare un ArrayList
oggetto
Per creare un ArrayList
oggetto, devi scrivere un codice come questo:
ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();
Dove ArrayList
è il tipo/classe della raccolta, TypeParameter
è il tipo degli elementi memorizzati nella ArrayList
raccolta ed name
è il nome di una ArrayList<TypeParameter>
variabile.
La name
variabile ha un tipo generico. Si compone di due tipi: prima viene indicato il tipo della raccolta, quindi vengono utilizzate parentesi angolari per indicare il tipo degli elementi memorizzati nella raccolta.
Esempi:
Codice | Descrizione |
---|---|
|
Elenco di numeri interi |
|
Elenco delle stringhe |
|
Elenco dei numeri reali |
A differenza degli array, le raccolte non possono memorizzare tipi primitivi, solo tipi di riferimento . Quindi, se hai bisogno di una raccolta di int
, usa Integer
invece la classe wrapper.
3. Operazioni con anArrayList
Inizialmente, la lunghezza dell'elenco appena creato è zero, poiché contiene 0 elementi. Se aggiungi un elemento all'elenco, la sua lunghezza aumenta di 1. Se rimuovi l'elemento aggiunto, la lunghezza torna a zero.
La seguente tabella può insegnarti di più sui metodi della ArrayList
classe:
Metodi | Descrizione |
---|---|
|
Aggiunge l'elemento passato all'elenco |
|
Aggiunge un elemento a una posizione specifica nell'elenco. |
|
Restituisce l'elemento il cui indice èindex |
|
Assegna value all'elemento il cui indice èindex |
|
Rimuove l'elemento il cui indice è index . Restituisce l'elemento rimosso. |
|
Rimuove l'elemento passato al metodo. Se è presente più di un elemento di questo tipo, il primo verrà rimosso. |
|
Cancella l'elenco, cioè rimuove tutti gli elementi dall'elenco. |
|
Controlla se l'elenco contiene value . |
|
Controlla se l'elenco è vuoto o meno. In altre parole, se la lunghezza dell'elenco è zero. |
|
Restituisce la dimensione dell'elenco, ovvero il numero di elementi nell'elenco. |
|
Restituisce un array contenente gli elementi della lista. Devi passare l'array al metodo. |
Questi metodi ti consentono di fare quasi tutto ciò che potresti desiderare con l'elenco: scambiare elementi, aggiungere elementi e rimuovere elementi. Puoi cancellare l'elenco con un singolo comando o persino convertire l'elenco in un array.
4. Confronto di ArrayList
eArray
Non credo che possiamo evitare il confronto ArrayList
e un array.
Ci sono solo 4 azioni che puoi eseguire con gli array:
- Crea una matrice
- Ottieni un elemento per indice
- Imposta un elemento per indice
- Ottieni la lunghezza dell'array
Ecco queste operazioni che si applicano a un array e a un ArrayList
:
Vettore | Lista di array |
---|---|
|
|
|
|
|
|
|
|
Confrontiamo come ArrayList
funziona un rispetto a come funziona un array. Ad esempio, implementiamo questa attività: "leggi 10 stringhe dalla tastiera e visualizzale sullo schermo in ordine inverso"
Usando Array | Utilizzo di ArrayList |
---|---|
|
|
L'analogia è chiara. Tutto è in qualche modo più breve e più chiaro per gli array. Ma ArrayList
non è neanche difficile: per ottenere un elemento, usiamo il get()
metodo; cambiare un elemento, il set()
metodo; per ottenere la lunghezza dell'elenco, il size()
metodo.
Allora perché i programmatori usano la ArrayList
classe?
Il punto centrale, ovviamente, sono tutti gli altri metodi che gli array ordinari non hanno:
- Aggiungi un elemento all'elenco
- Aggiungi un elemento al centro dell'elenco
- Trova un elemento nell'elenco
- Rimozione di un elemento da un elenco
GO TO FULL VERSION