Lista doppiamente collegata in Java

Hiten Kanwar 12 ottobre 2023
Lista doppiamente collegata in Java

In un elenco collegato, ogni elemento agisce come un oggetto separato con una parte dati e una parte indirizzo. Non utilizza una posizione di memoria contagiosa per memorizzare i dati. Un elenco doppiamente collegato memorizza l’indirizzo del nodo precedente e del nodo successivo. Avere due nodi di indirizzo consente a un elenco con collegamento doppio di attraversare in entrambe le direzioni.

Questo tutorial discuterà gli elenchi collegati in Java.

In Java, la classe Linked List è una parte del framework Collections di Java che fornisce la funzionalità della struttura dati Linked List, che agisce come un Doubly Linked List.

Ogni elemento qui agisce come un nodo composto da 3 valori, vale a dire Prev, Next e Data, in una singola posizione. Prev memorizza l’indirizzo dell’elemento precedente, Next memorizza l’indirizzo dell’elemento successivo e Data memorizza i dati effettivi del nodo.

Per esempio,

import java.util.*;
public class ABC {
  public static void main(String[] args) {
    LinkedList<String> fruits = new LinkedList<>();
    fruits.add("apple");
    fruits.add("orange");
    fruits.add("mango");
    System.out.println("LinkedList: " + fruits);
  }
}

Produzione:

LinkedList: [apple, orange, mango]

Nell’esempio sopra, abbiamo creato con successo un elenco collegato tramite il framework delle raccolte di Java.

Qui, il primo nodo ha dati come apple che contiene anche un valore nullo come precedente e l’indirizzo arancione come successivo. Allo stesso modo, il secondo elemento con dati orange ha l’indirizzo di mela come precedente e l’indirizzo di mango come successivo.

Ogni volta che viene aggiunto un nuovo elemento, gli indirizzi Prec e Next vengono aggiornati automaticamente internamente.

Il metodo get() viene utilizzato per accedere agli elementi da Linked List, che itera dall’inizio all’elemento. Abbiamo anche il metodo listIterator() per accedere ai componenti. Le funzioni next() e previous() possono aiutare a percorrere la lista in entrambe le direzioni.

Inoltre, possiamo usare il metodo set() per modificare gli elementi della lista collegato. La funzione remove() può eliminare un elemento.

Utilizziamo alcune di queste funzioni nell’esempio seguente.

import java.util.*;
public class ABC {
  public static void main(String[] args) {
    LinkedList<String> fruits = new LinkedList<>();
    fruits.add("apple");
    fruits.add("orange");
    fruits.add("mango");
    String str = fruits.listIterator(1).previous();
    System.out.println("i like " + str);
  }
}

Produzione:

i like apple

Nell’esempio sopra, abbiamo avuto accesso al valore precedente all’elemento all’indice 1 utilizzando la funzione previous().

Possiamo anche creare la nostra classe con dati e variabili puntatore per simulare un elenco Doubly Linked in Java.