Convertir colección a lista en Java

Dhruvdeep Singh Saini 12 octubre 2023
  1. Use un constructor para convertir una colección en una lista en Java
  2. Use funciones integradas para convertir la colección en una lista en Java
  3. Use el bucle for para convertir la colección en una lista en Java
  4. Use recopilar para convertir la colección en lista en Java
Convertir colección a lista en Java

Este artículo presentará y discutirá los diferentes métodos para convertir una colección en una lista en Java.

Use un constructor para convertir una colección en una lista en Java

Podemos usar la función constructora y proporcionar la colección que queremos convertir en el parámetro.

Sintaxis:

List<Generic> listname = new ArrayList<>(collectionName);

Ejemplo:

import java.util.*;
public class ExpHStoLL {
  public static void main(String[] args) {
    Set<String> hs = new HashSet<String>();
    // Adding names in hs
    hs.add("Dhruv");
    hs.add("Sahil");
    hs.add("Ajay");
    System.out.println("Hash Set Collection :" + hs);

    // Using constructor of hs for linked list
    List<String> MyList = new LinkedList<String>(hs);
    System.out.println("\nLinked List after conversion: " + MyList);
  }
}

Producción :

Hash Set Collection :[Dhruv, Sahil, Ajay]
Linked List after conversion: [Dhruv, Sahil, Ajay]

Aquí, hemos creado un conjunto hash de nombres y luego usamos el constructor hs para crear una lista a partir del conjunto hash.

Use funciones integradas para convertir la colección en una lista en Java

Hay dos métodos incorporados para convertir una colección en una lista en las clases Array y Collections.

Use asList para convertir la colección en una lista en Java

La clase Array proporciona el método asList() para convertir una colección de array en una lista.

Sintaxis:

List<Generic> MyList = Arrays.asList(ArrayName);

Ejemplo:

import java.util.*;
public class ExpArrtoL {
  public static void main(String args[]) {
    String[] MyArray = {"Dhruv", "Sahil", "Ajay"};
    System.out.println("My Array: " + Arrays.toString(MyArray));

    // Using asList function
    List<String> MyList = Arrays.asList(MyArray);
    System.out.println("List using asList(): " + MyList);
  }
}

Producción :

My Array: [Dhruv, Sahil, Ajay]
List using asList(): [Dhruv, Sahil, Ajay]

En el código anterior, creamos un array y luego usamos la función asList() con el nombre del array MyArray como argumento para convertir la colección en una lista.

Use addAll para convertir la colección en una lista en Java

addAll() es un método provisto en el marco de las colecciones que podemos usar para convertir una colección en una lista. Los elementos de la colección se pueden especificar uno por uno o como un array.

Esto es similar al método asList(), pero funciona mejor, mejorando efectivamente la complejidad del tiempo. Debemos crear tanto un array como una lista antes de usar este método, ya que requiere dos parámetros para copiar elementos de la colección a la lista.

Sintaxis:

Collections.addAll(ListName, ArrayName);

Ejemplo:

import java.util.*;
public class ExpArrtoL {
  public static void main(String args[]) {
    String[] MyArray = {"Dhruv", "Sahil", "Ajay"};
    System.out.println("My Array: " + Arrays.toString(MyArray));
    List<String> MyList = new ArrayList<>();

    // Using addAll function
    Collections.addAll(MyList, MyArray);
    System.out.println("List using addAll(): " + MyList);
  }
}

Producción :

My Array: [Dhruv, Sahil, Ajay]
List using addAll(): [Dhruv, Sahil, Ajay]

Use el bucle for para convertir la colección en una lista en Java

Si no queremos usar un constructor o funciones integradas, el bucle for-each puede ayudar a convertir una colección en una lista. Este método es amigable para los principiantes, ya que proporciona una forma fácil de conversión.

Ejemplo:

import java.util.*;
public class ListUsingForLoop {
  public static void main(String[] args) {
    Set<String> hs = new HashSet<String>();
    hs.add("Dhruv");
    hs.add("Sahil");
    hs.add("Ajay");
    System.out.println("Our HashSet HS:" + hs);

    // List of the same size as our HashSet hs
    List<String> MyList = new ArrayList<String>(hs.size());

    // The loop picks each string of HS and adds it to the List
    for (String x : hs) MyList.add(x);
    System.out.println("\nList made from HS:" + MyList);
  }
}

Producción :

Our HashSet HS:[Dhruv, Sahil, Ajay]

List made from HS:[Dhruv, Sahil, Ajay]

Aquí, hemos creado un conjunto hash de nombres y los usamos para cada bucle para especificar que para cada cadena encontrada en el conjunto hash hs, agregamos la cadena a nuestra lista MyList.

Use recopilar para convertir la colección en lista en Java

También podemos usar la función collect() de la transmisión para convertir una colección en una lista y mostrar un resultado sin editar nuestra colección original.

El método collect() reúne elementos de estructuras de datos o colecciones y proporciona lógica adicional para manipularlos.

Sintaxis:

List<Generic> ListName = CollectionName.stream().collect(toList());

Ejemplo:

import java.util.*;
import java.util.stream.*;
public class ExpHStoLL {
  public static void main(String[] args) {
    Set<String> hs = new HashSet<String>();
    // Adding names in hs
    hs.add("Dhruv");
    hs.add("Sahil");
    hs.add("Ajay");
    System.out.println("Hash Set Collection :" + hs);

    List<String> MyList = hs.stream().collect(Collectors.toList());
    System.out.println("\nConverted to List: " + MyList);
  }
}

Producción :

Hash Set Collection :[Dhruv, Sahil, Ajay]
Converted to List: [Dhruv, Sahil, Ajay]

Al usar el método collect() de la API de transmisión para convertir colecciones en una lista, la copia se realiza mediante referencias.

Dado que la lista es un tipo de datos de referencia, es decir, almacena la dirección de referencia de los objetos o elementos reales, cualquier cambio en nuestra lista también cambiará nuestra colección.

La lista de copias creada a partir de la colección original es una copia superficial. Esto significa que eliminar la lista también eliminará el elemento de la colección original.

Podemos evitar esto creando una copia profunda, donde la copia de una colección a una lista da como resultado una nueva asignación de memoria para la lista en lugar de simplemente copiar referencias antiguas.

Artículo relacionado - Java List

Artículo relacionado - Java Collection