Lista de concatenar en Java

Rashmi Patidar 12 octubre 2023
  1. Concatenación de listas usando el método cacat() en Java 8
  2. Concatenación de listas utilizando el método Stream.of() en Java 8
Lista de concatenar en Java

Una colección ordenada de elementos que pueden aumentar dinámicamente se conoce como colección List. Se representa como un elemento node, y cada nodo contiene una referencia al siguiente nodo y al elemento. Las operaciones que podemos realizar sobre una colección de listas incluyen el recorrido, la inserción, la actualización y la eliminación de elementos mediante los índices.

Java proporciona una interfaz de List que ofrece varios métodos para su funcionamiento. Las múltiples implementaciones de la lista incluyen ArrayList, LinkedList y SortedList. Hay diferentes propiedades de la lista que pueden:

  • Convertirse en valores duplicados en la lista.
  • Almacenar elementos nulos.
  • Crecer de forma dinámica, a diferencia de los arrays cuyo tamaño es definido.

El siguiente código ilustra cómo puede crear una lista de concatenados de 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);
  }
}

En el bloque de código anterior, las dos primeras líneas inicializan las listas que queremos concatenar.

La primera forma de inicialización de la lista es proporcionar elementos en el momento de la declaración. Entonces, según la metodología Java 8, se utiliza la interfaz Stream. Los flujos actúan como un contenedor de la fuente de datos y proporcionan métodos para operar y procesar los datos. El método estático of toma y crea el flujo secuencial de elementos proporcionados como parámetros y devuelve el flujo de elementos. La cadena de operaciones que realizamos está en Java 8. El método recopilar es una operación de terminal que recopila el flujo proporcionado después de la reducción.

Otra forma de inicializar la lista es utilizando la versión Java 9. Proporciona una forma conveniente de inicializar una lista utilizando el método de fábrica estático List.of que crea listas inmutables.

Finalmente, un objeto List combinado se inicializa tradicionalmente utilizando la versión Java 7. El método addAll() se invoca utilizando la instancia newList. El método agrega la colección especificada a la colección identificada al final. Devuelve true cuando se agrega correctamente la lista. El método puede lanzar NullPointerException cuando la colección de lista pasada es nula.

La instancia de lista combinada ahora contiene la colección birds_list. De manera similar, la instancia de animal_list se agrega a stringArrayList. Y finalmente, después de imprimir la lista, crea una colección secuencial adjuntada una tras otra.

A continuación se muestra la salida de la consola del bloque 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]

Concatenación de listas usando el método cacat() en Java 8

La ilustración usa el mismo bloque de código para mostrar el método concat() - es estático en la interfaz Stream. Se considera una operación intermedia o inicialización diferida, ya que opera cuando se aplica una operación de terminal sobre la función. El método concat() toma dos flujos que deben concatenarse. Y devuelve la lista combinada de los dos flujos que pasamos como parámetros. Con este método, se invoca la función collect para convertir la secuencia en el formato deseado. La función toma el colector como argumento y, en nuestro caso, se pasa la función Collectors.toList() para reducir el flujo en el tipo List.

La salida sería similar al primer bloque de código y se imprime en el registro de la consola anterior bajo la declaración Way 2.

Concatenación de listas utilizando el método Stream.of() en Java 8

Como se mencionó anteriormente, of es un método estático en la interfaz de Stream que toma elementos. Por tanto, estos elementos pueden ser tipos de datos primitivos o clases de collections. Las colecciones de aves y animales pasan como argumentos. Ahora, el método flatMap se invoca en la cadena de llamadas, y el uso es realizar el procesamiento y transformar la secuencia pasada.

El método flatMap toma una Function como parámetro. El método aplica transformaciones sobre los elementos y aplana el resultado. En este caso, se pasa Collection::stream para convertir los elementos en un único flujo, que se devuelve después del procesamiento. El flujo ahora se recopila utilizando el método collect.

La salida es la misma que la del bloque de consola anterior con el encabezado como 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

Artículo relacionado - Java List