Convertir ArrayList a Set en Java

Mohammad Irfan 12 octubre 2023
  1. Convierta ArrayList a HashSet utilizando un enfoque ingenuo en Java
  2. Convierta ArrayList a HashSet usando constructores en Java
  3. Convierta ArrayList a HashSet usando Java 8 Stream API
  4. Convierta ArrayList a HashSet usando el método Set.copyOf() en Java
  5. Convierta ArrayList en HashSet usando la biblioteca de colecciones de Apache Commons en Java
Convertir ArrayList a Set en Java

ArrayList es una clase de implementación de la interfaz List que se usa para almacenar datos en orden lineal, mientras que el conjunto es una interfaz que tiene la clase HashSet para almacenar datos. La principal diferencia entre estos dos es que HashSet no permite elementos duplicados y almacena elementos únicos.

Este tutorial presentará diferentes enfoques para convertir un ArrayList en un HashSet.

Convierta ArrayList a HashSet utilizando un enfoque ingenuo en Java

Este es el enfoque más básico para convertir una lista en un conjunto.

En este enfoque, primero declaramos un conjunto vacío. Luego recorremos la lista y agregamos su elemento al conjunto uno por uno usando el método HashSet.add(). Cuando el bucle termina, la lista se convierte en un conjunto.

Mira el código de abajo.

import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = new HashSet<String>();
    // apply for loop
    for (String ele : list) {
      set.add(ele);
    }
    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

Producción :

Rahul
Kushagra
Jay
Karan
Laxman
Praful

En el código anterior, creamos una lista que almacena algunos nombres. También inicializamos un conjunto vacío llamado set.

Luego recorremos la lista y agregamos sus elementos para establecer uno por uno. Por último, imprimimos los elementos del conjunto. Observe cómo se eliminan los elementos duplicados en la lista.

Convierta ArrayList a HashSet usando constructores en Java

Este enfoque es el más simple de todos los enfoques. En este enfoque, pasamos la lista que debe convertirse en el constructor de la clase HashSet.

Esto elimina la necesidad de un bucle for como se requería en el enfoque anterior. El constructor devuelve un nuevo conjunto que tiene todos los elementos únicos.

Mira el código de abajo.

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = new HashSet<String>(list);

    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

Producción :

Rahul
Kushagra
Jay
Karan
Laxman
Praful

En el código anterior, creamos una lista que almacena algunos nombres. También inicializamos un conjunto vacío llamado conjunto.

Pasamos la lista como argumento al constructor de HashMap. Por último, imprimimos los elementos del conjunto. Observe cómo se eliminan los elementos duplicados en la lista.

Convierta ArrayList a HashSet usando Java 8 Stream API

Utilizamos la API de flujo de Java 8 para convertir el ArrayList en un HashSet en este enfoque. Primero convertimos la lista en una secuencia. Luego aplicamos la función collect a la transmisión.

Para convertir en un conjunto, usamos la función Collectors.toSet() en la operación collect para obtener un conjunto. Mira el código de abajo.

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set using stream
    Set<String> set = list.stream().collect(Collectors.toSet());

    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

Producción :

Rahul
Kushagra
Jay
Karan
Laxman
Praful

Convertimos una lista en una secuencia usando la función List.stream() en el código anterior. Aplicamos la operación collect a la transmisión y pasamos el método Collectors.toSet() como argumento.

Esto da como resultado la conversión de la secuencia en un conjunto. Luego almacenamos este conjunto en el conjunto de variables.

Convierta ArrayList a HashSet usando el método Set.copyOf() en Java

Java 10 proporciona un método Set.copyof() que toma una colección como argumento y devuelve un conjunto inmutable que contiene los elementos de la colección dada. En este enfoque, usamos el método Set.copyOf() para convertir un ArrayList en un HashSet.

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = Set.copyOf(list);
    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

Producción :

Rahul
Kushagra
Jay
Karan
Laxman
Praful

Convierta ArrayList en HashSet usando la biblioteca de colecciones de Apache Commons en Java

Si está trabajando con la biblioteca Apache Commons Collection, use el método CollectionUtils.addAll() que toma dos argumentos: objeto de colección de destino y objeto de colección de origen.

Los valores del objeto de la colección de origen se copian en el objeto de la colección de destino y crean un conjunto. Mira el código de abajo.

Este código usa el código de dependencia de la biblioteca Apache commons. Primero, agregue esta dependencia a su proyecto Java para ejecutar este código con éxito.

<!-- https://mvnrepository.com/artifact/commons-collections/commons-collections -->
<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.2</version>
</dependency>
import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> sourcelist =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> targetset = new HashSet<String>();
    // Adding elements
    CollectionUtils.addAll(targetset, sourcelist);
    // display the set
    for (String ele : targetset) {
      System.out.println(ele);
    }
  }
}

Producción :

Rahul
Kushagra
Jay
Karan
Laxman
Praful

Artículo relacionado - Java ArrayList

Artículo relacionado - Java Set