Matriz de lista vinculada em Java

Rashmi Patidar 12 outubro 2023
  1. Demonstrar a matriz de lista vinculada usando um array tradicional em Java
  2. Demonstrar a matriz de lista vinculada usando o construtor em Java
Matriz de lista vinculada em Java

Uma LinkedList é a estrutura de dados sequencial e linear que armazena elementos em uma ordem definida. A estrutura de dados faz parte da interface Collection e está presente no pacote java.util.

A lista vinculada também possui elementos armazenados na parte node. Cada nó tem uma parte data para armazenamento do elemento e o pointer para manter o endereço do próximo nó. Os elementos da lista não estão presentes em locais de memória contíguos.

Demonstrar a matriz de lista vinculada usando um array tradicional em Java

Abaixo está o bloco de código que cria um array de listas vinculadas usando loops.

import java.util.LinkedList;

public class Main {
  public static void main(String[] args) {
    LinkedList[] list = new LinkedList[5];
    for (int i = 0; i < 5; i++) {
      if (list[i] == null) {
        list[i] = new LinkedList();
        int temp = i;
        for (int j = 0; j < temp + 1; j++) {
          list[i].add(j);
        }
      }
      System.out.print(list[i]);
    }
  }
}

No bloco acima, a instrução new LinkedList[5] cria uma lista vinculada. A nova palavra-chave chama o construtor público da lista vinculada da classe. O valor 5 demonstra o tamanho do array, portanto, criamos um array de 5 listas vinculadas.

Sobre a variável de lista, o loop é executado para instanciar uma nova lista vinculada em cada nó. Portanto, um loop for é aplicado com uma condição de valor inteiro menor que 5 e começa a ser executado. Internamente, ele verifica a condição se o valor no nó for null; caso contrário, um novo nó Linked List é instanciado.

Novamente, um loop for é usado para preencher os elementos na lista. O método add é usado para anexar os elementos no final da lista. O método é da classe LinkedList e retorna o valor booleano. Ele retorna true se a função adicionar for executada com sucesso, caso contrário, false.

Da mesma forma, a iteração continua e o valor de cada nó é preenchido com a lista vinculada. O mesmo também é impresso dentro do loop para verificar os elementos presentes nos nós.

Produção:

[0][0, 1][0, 1, 2][0, 1, 2, 3][0, 1, 2, 3, 4]

Demonstrar a matriz de lista vinculada usando o construtor em Java

Abaixo está o bloco de código que usa recursos e funções do Java 8 para criar um array de listas vinculadas.

import java.util.ArrayList;
import java.util.LinkedList;

public class main {
  public static void main(String[] args) {
    LinkedList list1 = new LinkedList<String>();
    list1.add("l1_value1");
    list1.add("l1_value2");

    LinkedList list2 = new LinkedList();
    list2.add("l2_value1");
    list2.add("l2_value2");

    LinkedList list3 = new LinkedList();
    list3.add("l3_value1");
    list3.add("l3_value2");

    ArrayList<LinkedList> arrayList = new ArrayList<LinkedList>();
    arrayList.add(list1);
    arrayList.add(list2);
    arrayList.add(list1);
    arrayList.forEach(System.out::println);
    System.out.println("Classname: " + arrayList.get(0).getClass());
  }
}

No bloco de código acima, o método main contém a lógica real para a execução do código.

Em primeiro lugar, uma lista vinculada é criada usando a palavra-chave new. A palavra-chave invoca o construtor público da classe LinkedList. Os valores da string são inseridos na lista. Da mesma forma, outras duas listas são criadas.

Finalmente, uma lista de arrays é instanciada. As variáveis ​​de lista formadas são adicionadas na instância da lista do array. A iteração da instância da lista acontece usando a função forEach. Além disso, uma instrução print com o operador de referência de método, ::, é adicionada para mostrar o nome do tipo de instância presente na lista de array.

A saída do programa acima é mostrada abaixo.

[l1_value1, l1_value2][l2_value1, l2_value2][l1_value1, l1_value2] Classname
    : class java.util.LinkedList
Rashmi Patidar avatar Rashmi Patidar avatar

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

Artigo relacionado - Java Linked List

Artigo relacionado - Java Array