Iterar por meio de uma lista vinculada em Java
-
Iterar por meio da lista vinculada usando o loop
for
em Java -
Iterar através da lista vinculada usando o loop
for
aprimorado em Java -
Iterar através da lista vinculada usando o loop
while
-
Iterar a lista vinculada usando a classe
Iterator
em Java -
Iterar a lista vinculada usando Java 8
Streams
Uma lista vinculada é uma coleção linear e ordenada de elementos de dados. A disposição dos elementos está em locais ubíquos ou aleatórios na memória. A estrutura de dados da lista vinculada é conectada por meio de nós. O Node
contém o campo de dados e o link de referência que são os locais de memória do próximo elemento na sequência.
Armazenamos os elementos da lista vinculada em locais de memória não contíguos e, o último nó contém um ponteiro para a referência nula.
Existem muitas maneiras de iterar em uma lista vinculada. Aqui estão algumas maneiras mencionadas abaixo.
Iterar por meio da lista vinculada usando o loop for
em Java
A classe LinkedList
é instanciada usando a palavra-chave new
no exemplo de código abaixo. O método add()
da classe LinkedList
adiciona um elemento à lista. O método add
anexa o elemento especificado ao final desta lista. Este método é equivalente ao método addLast
. O método retorna true
quando o elemento é adicionado com sucesso à lista.
Após a criação da lista, usamos o loop for
para iteração sobre ela. No código a seguir, int i=0
é uma instanciação da variável do contador. Use uma condição indicando que a variável deve ser menor que o tamanho da lista. E o tamanho da lista é calculado usando o método size()
. Por fim, o valor da variável aumenta em um. Este processo completo será executado até que o valor da variável se torne maior do que o tamanho da 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));
}
}
}
O programa acima gera a saída conforme a seguir.
Iterating the list using for-loop
First
Second
Iterar através da lista vinculada usando o loop for
aprimorado em Java
O loop for
aprimorado também é conhecido como loop for-each
e é um tipo de loop for
.
No código a seguir, devemos instanciar um objeto de lista vinculada. Em seguida, deve adicionar alguns elementos (por exemplo, objetos String) a ele. Agora, para iteração, usaremos for-each
neste caso.
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);
}
}
}
A saída do programa é a mesma do primeiro programa.
Iterar através da lista vinculada usando o loop while
A instanciação e adição de elementos ao processo de listagem serão semelhantes em todas as formas mencionadas.
No exemplo abaixo, o valor da variável do contador é instanciado em 0 fora do loop while
. A sintaxe do loop while
não tem lugar para instanciação. Agora aplique a condição. Isso verifica se a variável é menor que o tamanho da lista fornecida. Ele retornará verdadeiro, e a função println()
será executada. Depois disso, devemos incrementar a variável do contador. O processo se repetirá até que a variável se torne maior do que o tamanho da 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++;
}
}
}
Iterar a lista vinculada usando a classe Iterator
em Java
Um Iterator
é uma classe que trabalha em loop de objetos Collections
. Estes são Array
, ArrayList
, LinkedList
e assim por diante. Nós o chamamos de Iterator
, uma vez que faz um loop sobre os objetos da coleção. Deve-se usar métodos na classe Iterator para iterar sobre os objetos Collections
.
Usamos o método iterator()
para obter um Iterator
para qualquer coleção. O método hasNext
verifica se a lista possui mais elementos. Ele retorna true
se a iteração tiver mais elementos presentes.
O método next
obtém o próximo elemento do loop. Ele retorna o próximo objeto presente na iteração e lança NoSuchElementException
se nenhum elemento estiver presente na lista.
O código a seguir demonstra a classe Iterator e seus métodos.
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());
}
}
}
Iterar a lista vinculada usando Java 8 Streams
Um stream
é sempre formado sobre um objeto Coleção
. No programa abaixo, usamos o método stream
para o mesmo. As funções são aplicadas na cadeia de funções de fluxo. O forEach
é uma operação de terminal
. Isso significa que não se pode realizar nenhuma operação após uma função do terminal. É necessário um fluxo de consumidor
, e esse fluxo não emite elementos, em vez disso, os consome.
O código a seguir mostra o uso de fluxos Java 8 e sua função para iterar na 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