Questo tutorial Elenco Java spiega come creare, inizializzare e stampare elenchi in Java. Il tutorial spiega anche l’elenco delle liste con codice completo Esempio:

Questo tutorial vi introdurrà alla struttura dati ‘list’, che è una delle strutture di base nell’interfaccia di raccolta Java.

Un elenco in Java è una sequenza di elementi secondo un ordine. L’interfaccia Elenco di java.,il pacchetto util è quello che implementa questa sequenza di oggetti ordinati in un modo particolare chiamato List.

= > Controlla TUTTI I tutorial Java qui.

Proprio come gli array, è possibile accedere agli elementi dell’elenco anche utilizzando indici con il primo indice a partire da 0. L’indice indica un particolare elemento all’indice ‘ i ‘ cioè è i elementi lontano dall’inizio dell’elenco.

Alcune delle caratteristiche della lista in Java includono:

  • Le liste possono avere elementi duplicati.
  • La lista può anche avere elementi ‘null’.,
  • Gli elenchi supportano i generici, ad esempio puoi avere elenchi generici.
  • Puoi anche avere oggetti misti (oggetti di classi diverse) nello stesso elenco.
  • Gli elenchi conservano sempre l’ordine di inserimento e consentono l’accesso posizionale.

Elenco In Java

L’interfaccia Elenco Java è un sottotipo dell’interfaccia Raccolta Java. Questa è l’interfaccia standard che eredita l’interfaccia di raccolta di Java.

Di seguito è riportato un diagramma di classe dell’interfaccia Elenco Java.,

Java List Class Diagram

Come mostrato nel diagramma di classe sopra, l’interfaccia elenco Java si estende dall’interfaccia di raccolta di java.pacchetto util che a sua volta si estende dall’interfaccia iterabile di java.pacchetto util. La classe AbstractList fornisce l’implementazione scheletrica dell’interfaccia List.

Le classi LinkedList, Stack, Vector, ArrayList e CopyOnWriteArrayList sono tutte le classi di implementazione dell’interfaccia List utilizzate frequentemente dai programmatori., Quindi ci sono quattro tipi di elenchi in Java, ovvero Stack, LinkedList, ArrayList e Vector.

Quindi, quando si deve implementare l’interfaccia elenco, è possibile implementare una qualsiasi delle classi di tipo elenco sopra a seconda dei requisiti. Per includere la funzionalità dell’interfaccia elenco nel tuo programma, dovrai importare il pacchetto java.util.,* che contengono l’interfaccia list e altre definizioni di classi come segue:

import java.util.*;

Crea & Dichiara List

Abbiamo già dichiarato che List è un’interfaccia ed è implementata da classi come ArrayList, Stack, Vector e LinkedList. Quindi è possibile dichiarare e creare istanze dell’elenco in uno dei seguenti modi:

List linkedlist = new LinkedList(); List arrayList = new ArrayList();List vec_list = new Vector(); List stck_list = new Stack();

Come mostrato sopra, è possibile creare un elenco con una qualsiasi delle classi precedenti e quindi inizializzare questi elenchi con valori., Dalle dichiarazioni di cui sopra, è possibile capire che l’ordine degli elementi cambierà a seconda della classe utilizzata per creare un’istanza dell’elenco.

Ad esempio, per un elenco con classe stack, l’ordine è Last In, First Out (LIFO).

Inizializza Java List

Puoi utilizzare uno qualsiasi dei metodi indicati di seguito per inizializzare un oggetto list.

#1) Utilizzando il metodo asList

Il metodo asList () è già trattato in dettaglio nell’argomento Array. È possibile creare un elenco immutabile utilizzando i valori dell’array.,

La sintassi generale è:

List<data_type> listname = Arrays.asList(array_name);

Qui, il data_type deve corrispondere a quello dell’array.

L’istruzione precedente crea un elenco immutabile. Se si desidera che l’elenco sia mutabile, è necessario creare un’istanza dell’elenco utilizzando new e quindi assegnare gli elementi dell’array ad esso utilizzando il metodo asList.

Questo è come mostrato di seguito:

List<data_type> listname = new ArrayList<> (Arrays.asList(array_name));

Implementiamo un programma in Java che mostra la creazione e l’inizializzazione della lista usando il metodo asList.,

Output:

Nel programma di cui sopra, abbiamo creato la lista immutabile prima utilizzando il metodo asList. Quindi, creiamo un elenco mutabile creando un’istanza di ArrayList e quindi inizializzando questo ArrayList con valori dall’array usando il metodo asList.

Nota che poiché la seconda lista è mutabile, possiamo anche aggiungere più valori ad essa.

#2) Usando la lista.add ()

Come già accennato, poiché la lista è solo un’interfaccia, non può essere istanziata. Ma possiamo istanziare classi che implementano questa interfaccia., Pertanto, per inizializzare le classi list, è possibile utilizzare i rispettivi metodi add che è un metodo di interfaccia list ma implementato da ciascuna delle classi.

Se si crea un’istanza di una lista collegata di classe come di seguito:

List<Integer> llist = new LinkedList<Integer> ();

Poi, per aggiungere un elemento di un elenco, è possibile utilizzare il metodo add come segue:

llist.add(3);

C’è anche una tecnica chiamata “Doppia parentesi graffa di inizializzazione” in cui la lista viene creata un’istanza e inizializzato mediante la chiamata al metodo add nella stessa istruzione.,

Questo viene fatto come mostrato di seguito:

List<Integer> llist = new LinkedList<Integer> (){{ add(1); add(3);}};

L’istruzione precedente aggiunge gli elementi 1 e 3 all’elenco.

Il seguente programma mostra le inizializzazioni dell’elenco utilizzando il metodo add. Utilizza anche la tecnica di inizializzazione doppia parentesi graffa.

Output:

Questo programma ha tre diverse dichiarazioni di elenco, ad esempio ArrayList, LinkedList e Stack.

Gli oggetti ArrayList e LinkedList vengono istanziati e quindi i metodi add vengono chiamati per aggiungere elementi a questi oggetti., Per stack, viene utilizzata l’inizializzazione double brace in cui viene chiamato il metodo add durante l’istanziazione stessa.

#3) Utilizzo dei metodi di classe Collections

La classe collections di Java ha vari metodi che possono essere utilizzati per inizializzare l’elenco.

Alcuni dei metodi sono:

  • addAll

La sintassi generale per le collezioni addAll metodo è:

List<dataType> listname = Collections.EMPTY_LIST;Collections.addAll(listname = new ArrayList<datatype>(), values…);

Qui, si aggiungono valori a una lista vuota. Il metodo addAll prende l’elenco come primo parametro seguito dai valori da inserire nell’elenco.,

  • unmodifiableList ()

Il metodo ‘unmodifiableList()’ restituisce un elenco immutabile a cui gli elementi non possono essere aggiunti né eliminati.

La sintassi generale di questo metodo è la seguente:

List<datatype> listname = Collections.unmodifiableList(Arrays.asList(values…));

Il metodo prende i valori della lista come parametri e restituisce una lista. Se si tenta di aggiungere o eliminare qualsiasi elemento da questo elenco, il compilatore genera un’eccezione UnsupportedOperationException.

  • singletonList ()

Il metodo ‘singletonList’ restituisce un elenco con un singolo elemento al suo interno. La lista è immutabile.,

La sintassi generale per questo metodo è:

List<datatype> listname = Collections.singletonList(value);

Il seguente programma Java mostra tutti e tre i metodi della classe Collections discussi sopra.

Output:

#4) Usando Java8 Streams

Con l’introduzione di stream in Java 8, puoi anche costruire un flusso di dati e raccoglierli in un elenco.

Il seguente programma mostra la creazione di un elenco utilizzando stream.

Output:

Il programma sopra raccoglie il flusso di stringa in un elenco e lo restituisce., Puoi anche usare gli altri metodi di raccolta come ‘toCollection’,’ unmodifiableList ‘ ecc. a parte asList nella funzione collect.

#5) Elenco Java 9.of () Metodo

Un nuovo metodo viene introdotto in Java 9, List.of () che prende qualsiasi numero di elementi e costruisce una lista. L’elenco costruito è immutabile.

Output:

List Example

Di seguito è riportato un esempio completo di utilizzo di un’interfaccia list e dei suoi vari metodi.

Output:

L’output del programma sopra riportato mostra le varie operazioni eseguite su un ArrayList. Innanzitutto, crea e inizializza l’elenco., Quindi copia il contenuto di un altro elenco in questo elenco e rimuove anche un elemento dall’elenco. Infine, sostituisce l’ultimo elemento nell’elenco con un altro valore.

Esploreremo i metodi di elenco in dettaglio nel nostro prossimo tutorial.

Printing List

Esistono vari metodi con cui è possibile stampare gli elementi dell’elenco in Java.

Discutiamo alcuni dei metodi qui.

#1) Utilizzando For Loop/Enhanced For Loop

L’elenco è una raccolta ordinata a cui è possibile accedere utilizzando gli indici., È possibile utilizzare il ciclo for che viene utilizzato per iterare utilizzando gli indici per stampare ogni elemento dell’elenco.

Java ha un’altra versione di for loop conosciuta come enhanced for loop che può anche essere utilizzata per accedere e stampare ogni elemento dell’elenco.

Il programma Java mostrato di seguito mostra la stampa dei contenuti della lista utilizzando for loop e enhanced for loop.

Output:

#2) Utilizzando il metodo toString

Il metodo ‘toString()’ dell’interfaccia list restituisce la rappresentazione stringa della lista.

Il programma seguente mostra l’utilizzo del metodo toString ().,

Output:

Elenco convertito in un array

L’elenco ha un metodo toArray() che converte l’elenco in un array. Una volta convertito in un array, è possibile utilizzare i metodi di array discussi nel rispettivo argomento per stampare il contenuto di questo array. È possibile utilizzare for o enhanced for loop o anche il metodo toString.

L’esempio riportato di seguito utilizza il metodo toString per stampare il contenuto dell’array.

Output:

Utilizzando Java 8 Flussi

Flussi vengono introdotti in Java 8. È possibile utilizzare i flussi per scorrere l’elenco., Ci sono anche lambda con cui è possibile scorrere l’elenco.

Il programma qui sotto mostra l’uso dei flussi per scorrere l’elenco e visualizzarne il contenuto.

Output:

Oltre ai metodi discussi sopra, è possibile utilizzare gli iteratori di elenchi per scorrere l’elenco e visualizzarne il contenuto. Avremo un articolo completo sulla lista iteratore nei tutorial successivi.

Elenco delle liste

L’interfaccia elenco Java supporta la “lista delle liste”. In questo, i singoli elementi della lista è di nuovo una lista. Ciò significa che puoi avere una lista all’interno di un’altra lista.,

Questo concetto è molto utile quando devi leggere i dati da file CSV. Qui, potrebbe essere necessario leggere più elenchi o elenchi all’interno di elenchi e quindi memorizzarli in memoria. Anche in questo caso si dovrà elaborare questi dati e scrivere di nuovo al file. Pertanto, in tali situazioni, è possibile mantenere un elenco di elenchi per semplificare l’elaborazione dei dati.

Il seguente programma Java mostra un esempio di un elenco di elenchi Java.

In questo programma, abbiamo una lista di liste di tipo Stringa. Creiamo due elenchi separati di tipo string e assegniamo valori a questi elenchi., Entrambi questi elenchi vengono aggiunti all’elenco degli elenchi utilizzando il metodo add.

Per visualizzare il contenuto dell’elenco di elenchi, usiamo due loop. Il ciclo esterno (foreach) itera attraverso gli elenchi di elenchi che accedono agli elenchi. Il ciclo interno di foreach accede ai singoli elementi di stringa di ciascuna di queste liste.

Output:

Java list of lists è un concetto piccolo ma è importante soprattutto quando devi leggere dati complessi nel tuo programma.

Domande frequenti

Q #1) Che cos’è un elenco e un set in Java?

Risposta: Una lista è una raccolta ordinata di elementi., È possibile avere elementi duplicati nell’elenco.

Un set non è una raccolta ordinata. Gli elementi del set non sono disposti in un ordine particolare. Inoltre, gli elementi del set devono essere unici. Non consente duplicati.

Q #2) Come funziona un elenco in Java?

Risposta: L’elenco è un’interfaccia in Java che si estende dall’interfaccia di raccolta. Le classi ArrayList, LinkedList, Stack e Vector implementano l’interfaccia elenco. Quindi un programmatore può utilizzare queste classi per utilizzare la funzionalità dell’interfaccia list.

Q #3) Che cos’è un ArrayList in Java?,

Risposta: ArrayList è un array dinamico. Si tratta di una raccolta ridimensionabile di elementi e implementa l’interfaccia elenco. ArrayList utilizza internamente un array per memorizzare gli elementi.

Q # 4) Le liste iniziano da 0 o 1 in Java?

Risposta: gli elenchi in Java hanno un indice intero basato su zero. Ciò significa che il primo elemento nell’elenco è all’indice 0, il secondo elemento all’indice 1 e così via.

Q #5) La lista è ordinata?

Risposta: Sì. L’elenco è una raccolta ordinata di elementi., Questo ordine viene mantenuto, durante l’inserimento di un nuovo elemento nella lista,

Conclusione

Questo tutorial ha dato un’introduzione all’interfaccia list in Java. Abbiamo anche discusso i principali concetti di liste come creazione, inizializzazione di liste, stampa di liste, ecc.

Nei nostri prossimi tutorial, discuteremo i vari metodi forniti dall’interfaccia elenco. Discuteremo anche il costrutto iteratore che viene utilizzato per iterare l’oggetto list. Discuteremo la conversione degli oggetti list in altre strutture dati nel nostro prossimo tutorial.,

= > Visita qui per vedere la serie di formazione Java per tutti.