Lista concatenada em Java

Rashmi Patidar 12 outubro 2023
  1. Listar concatenação usando o método cacat() em Java 8
  2. Listar concatenação usando o método Stream.of() em Java 8
Lista concatenada em Java

Uma coleção ordenada de elementos que podem aumentar dinamicamente é conhecida como coleção List. Ele é representado como um elemento node e cada nó contém uma referência para o próximo nó e o elemento. As operações que podemos realizar em uma coleção de lista incluem passagem de elemento, inserção, atualização e exclusão usando os índices.

Java fornece uma interface List que oferece vários métodos para seu funcionamento. As várias implementações da lista incluem ArrayList, LinkedList e SortedList. Existem diferentes propriedades da lista que podem:

  • Torne-se valores duplicados na lista.
  • Armazene elementos nulos.
  • Cresce dinamicamente, ao contrário de arrayes cujo tamanho é definido.

O código a seguir ilustra como você pode criar uma lista de concatenação Java:

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class ListConcatenation {
  public static void main(String[] args) {
    List<String> birds_list =
        Stream.of("pigeon", "crow", "squirrel").collect(Collectors.toList()); // Java 8
    List<String> animal_list = List.of("cat", "dog", "rabbit"); // Java 9

    System.out.println("Way 1");
    List<String> stringArrayList = new ArrayList<String>(); // Java7
    stringArrayList.addAll(birds_list);
    stringArrayList.addAll(animal_list);
    System.out.println(stringArrayList);

    System.out.println("Way 2");
    List<String> newList =
        Stream.concat(birds_list.stream(), animal_list.stream()).collect(Collectors.toList());
    System.out.println(newList);

    System.out.println("Way 3");
    List<String> newList2 =
        Stream.of(birds_list, animal_list).flatMap(Collection::stream).collect(Collectors.toList());
    System.out.println(newList2);
  }
}

No bloco de código acima, as duas primeiras linhas inicializam as listas que queremos concatenar.

A primeira forma de inicialização da lista é fornecer elementos no momento da própria declaração. Assim, de acordo com a metodologia Java 8, a interface Stream é usada. Os fluxos atuam como um wrapper para a fonte de dados e fornecem métodos para operar e processar os dados. O método estático of pega e cria o fluxo sequencial de elementos fornecidos como parâmetros e retorna o fluxo de elemento. A cadeia de operações que realizamos está em Java 8. O método collect é uma operação de terminal que coleta o stream fornecido após a redução.

Outra forma de inicializar a lista é usando a versão Java 9. Ele fornece uma maneira conveniente de inicializar uma lista usando o método de fábrica estático List.of que cria listas imutáveis.

Finalmente, um objeto List combinado é inicializado tradicionalmente usando a versão Java 7. O método addAll() é chamado usando a instância newList. O método anexa a coleção especificada à coleção identificada em seu final. Ele retorna true quando o acréscimo da lista é bem-sucedido. O método pode lançar NullPointerException quando a coleção de lista passada é nula.

A instância de lista combinada agora contém a coleção birds_list. Da mesma forma, a instância animal_list é adicionada a stringArrayList. E, finalmente, após imprimir a lista, ele cria uma coleção sequencial anexada uma após a outra.

Abaixo está a saída do console do bloco de código:

Way 1 [pigeon, crow, squirrel, cat, dog, rabbit] Way 2 [pigeon, crow, squirrel, cat, dog, rabbit]
    Way 3 [pigeon, crow, squirrel, cat, dog, rabbit]

Listar concatenação usando o método cacat() em Java 8

A ilustração usa o mesmo bloco de código para mostrar o método concat() - é estático na interface Stream. É considerada uma operação intermediária ou inicialização lenta, pois opera quando uma operação de terminal é aplicada sobre a função. O método concat() usa dois fluxos que devem ser concatenados. E ele retorna a lista combinada dos dois fluxos que passamos como parâmetros. Por meio desse método, a função collect é chamada para converter o fluxo no formato desejado. A função leva o coletor como argumento e, em nosso caso, a função Collectors.toList() é passada para reduzir o fluxo no tipo List.

A saída seria semelhante ao primeiro bloco de código e é impressa no log do console acima sob a instrução Way 2.

Listar concatenação usando o método Stream.of() em Java 8

Como mencionado acima, de é um método estático na interface Stream que recebe elementos. Portanto, esses elementos podem ser tipos de dados primitivos ou classes de collections. As coleções de pássaros e animais passam como argumentos. Agora, o método flatMap é invocado na cadeia de chamadas e o uso é para realizar o processamento e transformar o fluxo passado.

O método flatMap leva uma Function como parâmetro. O método aplica transformações sobre os elementos e nivela o resultado. Nesse caso, Collection::stream é passado para converter os elementos em um único stream, que é retornado após o processamento. O fluxo agora é coletado usando o método collect.

A saída é a mesma do bloco do console acima com o título Way 3.

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 List