Crea un nuovo lista in Java
- Crea un nuovo lista vuoto in Java
- Crea un nuovo lista non vuoto in Java
- Crea una lista non vuoto di dimensioni fisse in Java
Questo tutorial discuterà i metodi per creare diversi tipi di liste in Java.
List
in Java è un’interfaccia implementata da ArrayList
, LinkedList
, Vector
e Stack
. Fornisce una raccolta ordinata di oggetti. L’utente ha un controllo preciso su dove nella lista viene inserito ogni elemento. L’utente può accedere agli elementi tramite il loro indice intero (posizione nell’lista) e cercare elementi nell’lista. Inoltre, gli liste consentono anche di memorizzare elementi duplicati.
Crea un nuovo lista vuoto in Java
Poiché List
è un’interfaccia, non possiamo creare direttamente un oggetto List. Tuttavia, possiamo creare oggetti delle classi che implementano l’interfaccia List: ArrayList
, LinkedList
, Vector
e Stack
. Ecco un modo semplice:
List myArrayList = new ArrayList();
List myLinkedList = new LinkedList();
List myVector = new Vector();
List myStack = new Stack();
Questi tipi di liste non hanno un tipo di dati specifico e possono contenere qualsiasi tipo di oggetto e valore al suo interno. Proviamo a crearli in Java e ad aggiungere alcuni valori.
import java.util.*;
public class myClass {
public static void main(String args[]) {
// ArrayList
List myArrayList = new ArrayList();
myArrayList.add(1);
myArrayList.add(2);
myArrayList.add("three");
System.out.println("ArrayList: " + myArrayList);
// LinkedList
List myLinkedList = new LinkedList();
myLinkedList.add(4);
myLinkedList.add(5);
myLinkedList.add("six");
System.out.println("LinkedList: " + myLinkedList);
// Stack
List myStack = new Stack();
myStack.add(7);
myStack.add(8);
myStack.add("nine");
System.out.println("Stack: " + myStack);
}
}
Il codice precedente restituisce:
ArrayList: [1, 2, three]
LinkedList: [4, 5, six]
Stack: [7, 8, nine]
Possiamo vedere che abbiamo aggiunto i valori int
e String
alle liste senza alcun errore.
È possibile specificare il tipo di dati in modo tale che solo i valori di quel particolare tipo possano essere memorizzati. Proviamo un altro esempio.
import java.util.*;
public class myClass {
public static void main(String args[]) {
// ArrayList
List<Integer> myArrayList = new ArrayList<>();
myArrayList.add(1);
myArrayList.add(2);
myArrayList.add("three");
System.out.println("ArrayList: " + myArrayList);
}
}
Il codice precedente genera il seguente errore.
> /myClass.java:9: error: incompatible types: String cannot be converted to Integer
> myArrayList.add("three");
È perché durante la creazione dell’oggetto ArrayList
, abbiamo specificato che il tipo di dati fosse Integer
; pertanto, non accetterà nessun altro tipo di dati.
Crea un nuovo lista non vuoto in Java
Abbiamo discusso su come creare oggetti List vuoti e quindi aggiungere oggetti all’lista. Vediamo ora un altro modo per creare una lista con oggetti al suo interno.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<String> list = new ArrayList<String>() {
{
add("a");
add("b");
}
};
System.out.println("ArrayList: " + list);
}
}
Il codice precedente restituisce:
ArrayList: [a, b]
Crea una lista non vuoto di dimensioni fisse in Java
Possiamo anche creare una lista non vuoto di dimensioni fisse. In tal caso, operazioni come add
, remove
non saranno supportate.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<Integer> list = Arrays.asList(1, 2);
System.out.println("ArrayList: " + list);
}
}
Il codice precedente restituisce:
ArrayList: [1, 2]
Vediamo cosa succede se proviamo ad aggiungere un altro elemento a questo lista.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<Integer> list = Arrays.asList(1, 2);
list.add(3);
System.out.println("ArrayList: " + list);
}
}
Il codice precedente dà il seguente errore poiché non consente operazioni come add
, remove
ecc:
> Exception in thread "main" java.lang.UnsupportedOperationException
> at java.base/java.util.AbstractList.add(AbstractList.java:153)
> at java.base/java.util.AbstractList.add(AbstractList.java:111)
> at myClass.main(myClass.java:6)
Tuttavia, è possibile modificare il valore in qualsiasi posizione in questo tipo di lista.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<Integer> list = Arrays.asList(1, 2);
System.out.println("Initial ArrayList: " + list);
list.set(1, 3);
System.out.println("Changed ArrayList: " + list);
}
}
Il codice precedente restituisce:
Initial ArrayList: [1, 2]
Changed ArrayList: [1, 3]
Ora sappiamo come creare diversi tipi di liste in Java.