Iterare una lista collegata in Java
-
Scorri la lista collegato utilizzando il cicli
for
in Java -
Scorri la lista collegato utilizzando il cicli
for
migliorato in Java -
Scorri la lista collegato utilizzando il cicli
while
-
Iterare la lista collegato utilizzando la classe
Iterator
in Java -
Iterazione della lista collegato utilizzando Java 8
Streams
Un elenco collegato è una raccolta lineare e ordinata di elementi di dati. La disposizione degli elementi è ubiquitaria o casuale nella memoria. La struttura dei dati della lista collegato è collegata utilizzando i nodi. Il Nodo
contiene il campo dati e il collegamento di riferimento che sono posizioni di memoria dell’elemento successivo nella sequenza.
Memorizziamo gli elementi della lista collegato in posizioni di memoria non contigue e l’ultimo nodo contiene un puntatore al riferimento nullo.
Esistono molti modi per scorrere una lista collegato. Ecco alcuni modi menzionati di seguito.
Scorri la lista collegato utilizzando il cicli for
in Java
La classe LinkedList
viene istanziata utilizzando la parola chiave new
nell’esempio di codice seguente. Il metodo add()
della classe LinkedList
aggiunge un elemento alla lista. Il metodo add
aggiunge l’elemento specificato alla fine di questo elenco. Questo metodo è equivalente al metodo addLast
. Il metodo restituisce true
quando l’elemento viene aggiunto con successo alla lista.
Dopo la creazione della lista, usiamo il cicli for
per l’iterazione su di essa. Nel codice seguente, int i=0
è un’istanza della variabile counter. Utilizza una condizione che indichi che la variabile deve essere inferiore alla dimensione della lista. E la dimensione della lista viene calcolata usando il metodo size()
. Alla fine, il valore della variabile aumenta di uno. Questo processo completo verrà eseguito fino a quando il valore della variabile non supera la dimensione della lista.
package linkedList;
import java.util.LinkedList;
public class IterateLinkedListUsingForLoop {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("First");
list.add("Second");
System.out.println("Iterating the list using for-loop");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
Il programma precedente genera l’output come indicato di seguito.
Iterating the list using for-loop
First
Second
Scorri la lista collegato utilizzando il cicli for
migliorato in Java
Il cicli for
migliorato viene anche chiamato loop for-each
ed è un tipo di cicli for
.
Nel codice seguente, dovremmo creare un’istanza di un oggetto elenco collegato. Quindi dovrebbe aggiungere alcuni elementi (diciamo oggetti String) ad esso. Ora per l’iterazione, in questo caso useremo for-each
.
package linkedList;
import java.util.LinkedList;
public class IteratingLinkedListUsingForEach {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("First");
list.add("Second");
for (String temp : list) {
System.out.println(temp);
}
}
}
L’output del programma è lo stesso del primo programma.
Scorri la lista collegato utilizzando il cicli while
La creazione di istanze e l’aggiunta di elementi al processo di quotazione saranno simili in tutti i modi menzionati.
Nell’esempio seguente, il valore della variabile counter viene istanziato a 0 al di fuori del cicli while
. La sintassi del cicli while
non ha spazio per l’istanza. Ora applica la condizione. Questo controlla se la variabile è inferiore alla dimensione della lista data. Restituirà true e la funzione println()
verrà eseguita. Dopodiché, dovremmo incrementare la variabile counter. Il processo si ripeterà finché la variabile non diventerà più grande della dimensione della lista.
package linkedList;
public class IteratingLinkedListUsingWhileLoop {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("First");
list.add("Second");
int i = 0;
while (i < list.size()) {
System.out.println(list.get(i));
i++;
}
}
}
Iterare la lista collegato utilizzando la classe Iterator
in Java
Un Iteratore
è una classe che lavora sul loop di oggetti Collections
. Questi sono Array
, ArrayList
, LinkedList
e così via. Lo chiamiamo un Iterator
in quanto esegue il bucle sugli oggetti della raccolta. Si dovrebbero usare metodi nella classe Iterator per iterare sugli oggetti Collections
.
Usiamo il metodo iterator()
per ottenere un Iterator
per qualsiasi raccolta. Il metodo hasNext
controlla se la lista ha più elementi. Restituisce true
se l’iterazione ha più elementi presenti.
Il metodo next
ottiene l’elemento successivo nel bucle. Restituisce il prossimo oggetto presente nell’iterazione e lancia NoSuchElementException
se nessun elemento è presente nella lista.
Il codice seguente mostra la classe Iterator ei suoi metodi.
package linkedList;
public class IteratingLinkedListUsingIterator {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("First");
list.add("Second");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
Iterazione della lista collegato utilizzando Java 8 Streams
Un stream
si forma sempre su un oggetto Collezione
. Nel programma seguente, usiamo il metodo stream
per lo stesso. Le funzioni vengono applicate sulla catena di funzioni di flusso. Il forEach
è un’operazione di terminale
. Significa che non è possibile eseguire alcuna operazione dopo una funzione terminale. Ci vuole un flusso consumatore
, e questo flusso non emette elementi ma li consuma.
Il codice seguente mostra l’uso dei flussi Java 8 e la loro funzione per scorrere la lista.
package linkedList;
public class IteratingLinkedListUsingStreams {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("First");
list.add("Second");
list.stream().forEach((element) -> { System.out.println(element); });
}
}
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn