Lista duplamente vinculada em Java

Hiten Kanwar 12 outubro 2023
Lista duplamente vinculada em Java

Em uma lista vinculada, cada elemento atua como um objeto separado com uma parte de dados e uma parte de endereço. Ele não usa um local de memória contagioso para armazenar dados. Uma lista duplamente vinculada armazena o endereço do nó anterior e do próximo. Ter dois nós de endereço permite que uma lista duplamente vinculada atravesse em ambas as direções.

Este tutorial discutirá listas vinculadas em Java.

Em Java, a classe Linked List é uma parte do framework Java Collections que fornece a funcionalidade da estrutura de dados Linked List, que atua como uma Doubly Linked List.

Cada elemento aqui atua como um nó que consiste em 3 valores, a saber Prev, Next e Data, em uma única posição. Prev armazena o endereço do elemento anterior, Next armazena o endereço do próximo elemento e Data armazena os dados reais do nó.

Por exemplo,

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);
  }
}

Resultado:

LinkedList: [apple, orange, mango]

No exemplo acima, criamos com sucesso uma lista vinculada por meio da estrutura de coleções do Java.

Aqui, o primeiro nó tem dados como apple que também mantém o valor nulo como anterior e o endereço laranja como seguinte. Da mesma forma, o segundo elemento com os dados orange tem o endereço da apple como anterior e o endereço da mango como próximo.

Sempre que um novo elemento é adicionado, os endereços Prev e Next são atualizados automaticamente internamente.

O método get() é usado para acessar os elementos da Lista Vinculada, que itera do início ao elemento. Também temos o método listIterator() para acessar os componentes. As funções next() e previous() podem ajudar a percorrer a lista em ambas as direções.

Além disso, podemos usar o método set() para alterar os elementos da lista vinculada. A função remove() pode excluir um elemento.

Usamos algumas dessas funções no exemplo a seguir.

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);
  }
}

Resultado:

i like apple

No exemplo acima, acessamos o valor anterior ao elemento no índice 1 usando a função previous().

Também podemos criar nossa classe com dados e variáveis ​​de ponteiro para simular uma lista duplamente vinculada em Java.

Artigo relacionado - Java Linked List