Lista duplamente vinculada em Java

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.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se

Artigo relacionado - Java Linked List