Java Set es parte del paquete java.util y amplía la interfaz java.util.Collection. No permite el uso de elementos duplicados y, como máximo, solo puede acomodar un elemento nulo. Algunas características importantes de la interfaz de Java Set son las siguientes:
- La interfaz establecida es una colección desordenada de objetos en la que no se pueden almacenar valores duplicados.
- Java Set no proporciona control sobre la posición de inserción o eliminación de elementos.
- Básicamente, Set se implementa mediante HashSet, LinkedHashSet o TreeSet (representación ordenada).
- Set tiene varios métodos para agregar, quitar claro, tamaño, etc. para mejorar el uso de esta interfaz.
En esta publicación, se analizan diferentes métodos para convertir una interfaz de lista a Set en Java :
Forma 1: enfoque ingenuo : la solución ingenua es crear un conjunto vacío y agregar todos los elementos de la lista especificada al conjunto recién creado. A continuación se muestra la implementación del enfoque ingenuo:
Java
// Java Program to convert // List to Set in Java 8 import java.util.*; import java.util.stream.*; import java.util.function.Function; class GFG { // Generic function to convert list to set public static <T> Set<T> convertListToSet(List<T> list) { // create an empty set Set<T> set = new HashSet<>(); // Add each element of list into the set for (T t : list) set.add(t); // return the set return set; } public static void main(String args[]) { // Create a stream of integers List<String> list = Arrays.asList("GeeksForGeeks", "Geeks", "forGeeks", "A computer portal", "for", "Geeks"); // Print the List System.out.println("List: " + list); // Convert List to stream Set<String> set = convertListToSet(list); // Print the Set System.out.println("Set from List: " + set); } }
Producción:
List: [GeeksForGeeks, Geeks, forGeeks, A computer portal, for, Geeks] Set from List: [Geeks, for, GeeksForGeeks, A computer portal, forGeeks]
Forma 2: Uso de Constructor : el constructor HashSet puede tomar otro objeto de colección para construir un nuevo conjunto que contenga los elementos de la lista especificada. A continuación se muestra la implementación del enfoque anterior:
Java
// Java Program to convert // List to Set in Java 8 import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert list to set public static& lt; T& gt; Set& lt; T& gt; convertListToSet(List& lt; T & gt; list) { // create a set from the List return new HashSet& lt; > (list); } public static void main(String args[]) { // Create a stream of integers List& lt; String& gt; list = Arrays.asList("GeeksForGeeks", "Geeks", "forGeeks", "A computer portal", "for", "Geeks"); // Print the List System.out.println(" List : " + list); // Convert List to stream Set& lt; String& gt; set = convertListToSet(list); // Print the Set System.out.println(" Set from List : " + set); } }
Producción:
List: [GeeksForGeeks, Geeks, forGeeks, A computer portal, for, Geeks] Set from List: [Geeks, for, GeeksForGeeks, A computer portal, forGeeks]
Forma 3: Uso de la API de flujo de Java 8 : el constructor HashSet puede tomar otro objeto de colección para construir un nuevo conjunto que contenga los elementos de la lista especificada. A continuación se muestra la implementación del enfoque anterior:
Java
// Java Program to convert // List to Set in Java 8 import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert list to set public static <T> Set<T> convertListToSet(List<T> list) { // create a set from the List return list.stream().collect(Collectors.toSet()); } public static void main(String args[]) { // Create a stream of integers List<String> list = Arrays.asList("GeeksForGeeks", "Geeks", "forGeeks", "A computer portal", "for", "Geeks"); // Print the List System.out.println("List: " + list); // Convert List to stream Set<String> set = convertListToSet(list); // Print the Set System.out.println("Set from List: " + set); } }
Producción:
List: [GeeksForGeeks, Geeks, forGeeks, A computer portal, for, Geeks] Set from List: [Geeks, for, GeeksForGeeks, A computer portal, forGeeks]
Forma 4: usar Guava Sets.newHashSet() : Sets.newHashSet() crea una instancia mutable de HashSet que contiene los elementos de la lista especificada. A continuación se muestra la implementación del enfoque anterior:
Java
// Java Program to convert // List to Set in Java 8 import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert list to set public static <T> Set<T> convertListToSet(List<T> list) { // create a set from the List return return Sets.newHashSet(list); } public static void main(String args[]) { // Create a stream of integers List<String> list = Arrays.asList("GeeksForGeeks", "Geeks", "forGeeks", "A computer portal", "for", "Geeks"); // Print the List System.out.println("List: " + list); // Convert List to stream Set<String> set = convertListToSet(list); // Print the Set System.out.println("Set from List: " + set); } }
Producción:
List: [GeeksForGeeks, Geeks, forGeeks, A computer portal, for, Geeks] Set from List: [Geeks, for, GeeksForGeeks, A computer portal, forGeeks]
Forma 5: Usar el método addAll() en el paquete Collection
En esto, podemos convertir los elementos de la lista para establecer mediante el método addAll(). Para ello, tenemos que importar el paquete java.util.Collection .
Este método addAll(Collection c) es un tipo de datos booleano. Se utiliza para agregar la colección de un objeto a la colección de otro objeto.
Java
import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert list to set public static <T> Set<T> convertListToSet(List<T> list) { // create a set from the List using addAll() method HashSet<T> set = new HashSet<>(); set.addAll(list); return set; } public static void main(String args[]) { // Create a stream of integers List<String> list = Arrays.asList( "GeeksForGeeks", "Geeks", "forGeeks", "A computer portal", "for", "Geeks"); // Print the List System.out.println("List: " + list); // Convert List to stream Set<String> set = convertListToSet(list); // Print the Set System.out.println("Set from List: " + set); } }
Producción:
List: [GeeksForGeeks, Geeks, forGeeks, A computer portal, for, Geeks] Set from List: [Geeks, for, GeeksForGeeks, A computer portal, forGeeks]
Publicación traducida automáticamente
Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA