La classe Java LinkedList utilizza un elenco doppiamente collegato per memorizzare gli elementi. Fornisce una struttura dati a elenco collegato. Eredita la classe AbstractList e implementa le interfacce List e Deque.
I punti importanti su Java LinkedList sono:
- La classe Java LinkedList può contenere elementi duplicati.
- La classe Java LinkedList mantiene l'ordine di inserimento.
- La classe Java LinkedList non è sincronizzata.
- Nella classe Java LinkedList, la manipolazione è veloce perché non è necessario che si verifichi alcuno spostamento.
- La classe Java LinkedList può essere utilizzata come elenco, stack o coda.
Gerarchia della classe LinkedList
Come mostrato nel diagramma sopra, la classe Java LinkedList estende la classe AbstractSequentialList e implementa le interfacce List e Deque.
iskcon modulo completo
Elenco doppiamente collegato
Nel caso di una lista doppiamente collegata, possiamo aggiungere o rimuovere elementi da entrambi i lati.
Dichiarazione della classe LinkedList
Vediamo la dichiarazione per la classe java.util.LinkedList.
public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable
Costruttori di Java LinkedList
Costruttore | Descrizione |
---|---|
Lista collegata() | Viene utilizzato per costruire una lista vuota. |
Lista collegata(Raccolta c) | Viene utilizzato per costruire un elenco contenente gli elementi della raccolta specificata, nell'ordine in cui vengono restituiti dall'iteratore della raccolta. |
Metodi di Java LinkedList
Metodo | Descrizione |
---|---|
somma booleana(E e) | Viene utilizzato per aggiungere l'elemento specificato alla fine di un elenco. |
void add(int indice, elemento E) | Viene utilizzato per inserire l'elemento specificato nell'indice della posizione specificata in una lista. |
booleano addAll(Collezione c) | Viene utilizzato per aggiungere tutti gli elementi nella raccolta specificata alla fine di questo elenco, nell'ordine in cui vengono restituiti dall'iteratore della raccolta specificata. |
booleano addAll(Collezione c) | Viene utilizzato per aggiungere tutti gli elementi nella raccolta specificata alla fine di questo elenco, nell'ordine in cui vengono restituiti dall'iteratore della raccolta specificata. |
booleano addAll(int indice, Collezione c) | Viene utilizzato per aggiungere tutti gli elementi nella raccolta specificata, a partire dalla posizione specificata dell'elenco. |
void addFirst(E e) | Si usa per inserire l'elemento dato all'inizio di una lista. |
void addUltimo(E e) | Viene utilizzato per aggiungere l'elemento specificato alla fine di una lista. |
vuoto chiaro() | Viene utilizzato per rimuovere tutti gli elementi da un elenco. |
Clone oggetto() | Viene utilizzato per restituire una copia superficiale di un ArrayList. |
booleano contiene(Oggetto o) | Viene utilizzato per restituire true se una lista contiene un elemento specificato. |
Iteratore discendenteIterator() | Viene utilizzato per restituire un iteratore sugli elementi in una deque in ordine sequenziale inverso. |
Elemento E() | Viene utilizzato per recuperare il primo elemento di una lista. |
E get(indice int) | Viene utilizzato per restituire l'elemento nella posizione specificata in un elenco. |
E getFirst() | Viene utilizzato per restituire il primo elemento di una lista. |
E getUltimo() | Viene utilizzato per restituire l'ultimo elemento di una lista. |
int indiceOf(Oggetto o) | Viene utilizzato per restituire l'indice in una lista della prima occorrenza dell'elemento specificato, oppure -1 se la lista non contiene alcun elemento. |
int ultimoIndiceOf(Oggetto o) | Viene utilizzato per restituire l'indice in una lista dell'ultima occorrenza dell'elemento specificato, oppure -1 se la lista non contiene alcun elemento. |
ListIterator listIterator(int indice) | Viene utilizzato per restituire un iteratore di elenco degli elementi nella sequenza corretta, a partire dalla posizione specificata nell'elenco. |
offerta booleana(E e) | Aggiunge l'elemento specificato come ultimo elemento di una lista. |
offerta booleanaFirst(E e) | Inserisce l'elemento specificato all'inizio di un elenco. |
offerta booleanaUltimo(E e) | Inserisce l'elemento specificato alla fine di una lista. |
E sbirciatina() | Recupera il primo elemento di una lista |
E sbirciaPrima() | Recupera il primo elemento di una lista o restituisce null se una lista è vuota. |
E sbirciatinaUltimo() | Recupera l'ultimo elemento di una lista o restituisce null se una lista è vuota. |
E sondaggio() | Recupera e rimuove il primo elemento di un elenco. |
E pollFirst() | Recupera e rimuove il primo elemento di una lista o restituisce null se una lista è vuota. |
E sondaggioUltimo() | Recupera e rimuove l'ultimo elemento di una lista o restituisce null se una lista è vuota. |
E pop() | Estrae un elemento dallo stack rappresentato da un elenco. |
spinta vuota(E e) | Inserisce un elemento nello stack rappresentato da una lista. |
E rimuovi() | Viene utilizzato per recuperare e rimuovere il primo elemento di una lista. |
E rimuovi(indice int) | Viene utilizzato per rimuovere l'elemento nella posizione specificata in un elenco. |
rimozione booleana(Oggetto o) | Viene utilizzato per rimuovere la prima occorrenza dell'elemento specificato in un elenco. |
E rimuoviPrimo() | Rimuove e restituisce il primo elemento da un elenco. |
booleano rimuoviFirstOccurrence(Oggetto o) | Viene utilizzato per rimuovere la prima occorrenza dell'elemento specificato in un elenco (quando si attraversa l'elenco dalla testa alla coda). |
E rimuoviUltimo() | Rimuove e restituisce l'ultimo elemento da un elenco. |
booleano rimuoviUltimaOccurrence(Oggetto o) | Rimuove l'ultima occorrenza dell'elemento specificato in un elenco (quando si attraversa l'elenco dalla testa alla coda). |
E set(indice int, elemento E) | Sostituisce l'elemento nella posizione specificata in un elenco con l'elemento specificato. |
Oggetto[] aArray() | Viene utilizzato per restituire un array contenente tutti gli elementi di una lista nella sequenza corretta (dal primo all'ultimo elemento). |
T[] toArray(T[] a) | Restituisce un array contenente tutti gli elementi nella sequenza corretta (dal primo all'ultimo elemento); il tipo di runtime dell'array restituito è quello dell'array specificato. |
dimensione intera() | Viene utilizzato per restituire il numero di elementi in una lista. |
Esempio di lista collegata Java
import java.util.*; public class LinkedList1{ public static void main(String args[]){ LinkedList al=new LinkedList(); al.add('Ravi'); al.add('Vijay'); al.add('Ravi'); al.add('Ajay'); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Output: Ravi Vijay Ravi Ajay
Esempio Java LinkedList per aggiungere elementi
Qui vediamo diversi modi per aggiungere elementi.
import java.util.*; public class LinkedList2{ public static void main(String args[]){ LinkedList ll=new LinkedList(); System.out.println('Initial list of elements: '+ll); ll.add('Ravi'); ll.add('Vijay'); ll.add('Ajay'); System.out.println('After invoking add(E e) method: '+ll); //Adding an element at the specific position ll.add(1, 'Gaurav'); System.out.println('After invoking add(int index, E element) method: '+ll); LinkedList ll2=new LinkedList(); ll2.add('Sonoo'); ll2.add('Hanumat'); //Adding second list elements to the first list ll.addAll(ll2); System.out.println('After invoking addAll(Collection c) method: '+ll); LinkedList ll3=new LinkedList(); ll3.add('John'); ll3.add('Rahul'); //Adding second list elements to the first list at specific position ll.addAll(1, ll3); System.out.println('After invoking addAll(int index, Collection c) method: '+ll); //Adding an element at the first position ll.addFirst('Lokesh'); System.out.println('After invoking addFirst(E e) method: '+ll); //Adding an element at the last position ll.addLast('Harsh'); System.out.println('After invoking addLast(E e) method: '+ll); } }
Initial list of elements: [] After invoking add(E e) method: [Ravi, Vijay, Ajay] After invoking add(int index, E element) method: [Ravi, Gaurav, Vijay, Ajay] After invoking addAll(Collection c) method: [Ravi, Gaurav, Vijay, Ajay, Sonoo, Hanumat] After invoking addAll(int index, Collection c) method: [Ravi, John, Rahul, Gaurav, Vijay, Ajay, Sonoo, Hanumat] After invoking addFirst(E e) method: [Lokesh, Ravi, John, Rahul, Gaurav, Vijay, Ajay, Sonoo, Hanumat] After invoking addLast(E e) method: [Lokesh, Ravi, John, Rahul, Gaurav, Vijay, Ajay, Sonoo, Hanumat, Harsh]
Esempio Java LinkedList per rimuovere elementi
Qui vediamo diversi modi per rimuovere un elemento.
conversione di una stringa in un numero intero
import java.util.*; public class LinkedList3 { public static void main(String [] args) { LinkedList ll=new LinkedList(); ll.add('Ravi'); ll.add('Vijay'); ll.add('Ajay'); ll.add('Anuj'); ll.add('Gaurav'); ll.add('Harsh'); ll.add('Virat'); ll.add('Gaurav'); ll.add('Harsh'); ll.add('Amit'); System.out.println('Initial list of elements: '+ll); //Removing specific element from arraylist ll.remove('Vijay'); System.out.println('After invoking remove(object) method: '+ll); //Removing element on the basis of specific position ll.remove(0); System.out.println('After invoking remove(index) method: '+ll); LinkedList ll2=new LinkedList(); ll2.add('Ravi'); ll2.add('Hanumat'); // Adding new elements to arraylist ll.addAll(ll2); System.out.println('Updated list : '+ll); //Removing all the new elements from arraylist ll.removeAll(ll2); System.out.println('After invoking removeAll() method: '+ll); //Removing first element from the list ll.removeFirst(); System.out.println('After invoking removeFirst() method: '+ll); //Removing first element from the list ll.removeLast(); System.out.println('After invoking removeLast() method: '+ll); //Removing first occurrence of element from the list ll.removeFirstOccurrence('Gaurav'); System.out.println('After invoking removeFirstOccurrence() method: '+ll); //Removing last occurrence of element from the list ll.removeLastOccurrence('Harsh'); System.out.println('After invoking removeLastOccurrence() method: '+ll); //Removing all the elements available in the list ll.clear(); System.out.println('After invoking clear() method: '+ll); } }
Initial list of elements: [Ravi, Vijay, Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking remove(object) method: [Ravi, Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking remove(index) method: [Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] Updated list : [Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit, Ravi, Hanumat] After invoking removeAll() method: [Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking removeFirst() method: [Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking removeLast() method: [Gaurav, Harsh, Virat, Gaurav, Harsh] After invoking removeFirstOccurrence() method: [Harsh, Virat, Gaurav, Harsh] After invoking removeLastOccurrence() method: [Harsh, Virat, Gaurav] After invoking clear() method: []
Java LinkedList Esempio per invertire un elenco di elementi
import java.util.*; public class LinkedList4{ public static void main(String args[]){ LinkedList ll=new LinkedList(); ll.add('Ravi'); ll.add('Vijay'); ll.add('Ajay'); //Traversing the list of elements in reverse order Iterator i=ll.descendingIterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Output: Ajay Vijay Ravi
Esempio di lista collegata Java: libro
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class LinkedListExample { public static void main(String[] args) { //Creating list of Books List list=new LinkedList(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to list list.add(b1); list.add(b2); list.add(b3); //Traversing list for(Book b:list){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Produzione:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6