Convertir Array a HashSet en Java

La estructura de datos únicos no puede cumplir con los requisitos de los programadores, por eso hay muchas estructuras de datos incorporadas en los lenguajes de programación. 

Las arrays son la estructura de datos más utilizada en la mayoría de los lenguajes de programación. La ventaja de esta estructura de datos es que O(1) accede a los elementos de las arrays con la ayuda de la indexación, pero las desventajas más comunes son que no podemos cambiar el tamaño de la array después de la creación y la eliminación de los elementos es un proceso complicado en arrays.

Conjuntos : en Java, cualquier grupo de objetos individuales que se representan como una sola unidad se conoce como la colección de objetos. En Java, se ha definido un marco separado llamado «Marco de colección» en JDK 1.2 que contiene todas las clases de colección y la interfaz. Los conjuntos se clasifican en dos partes, el conjunto ordenado y el conjunto sin clasificar tienen ventajas y desventajas. El conjunto ordenado, es decir, TreeSet, ordena sus elementos únicos, pero la complejidad temporal de TreeSet es O (N log N), pero los conjuntos no ordenados, como HashSet y LinkedSet, cambian el orden de los elementos, pero la diferencia entre HashSet y LinkedSet es el orden aleatorio de sus elementos. elementos.

Ejemplos:

Input : Array: [1, 2, 3, 4, 5, 6]
Output: Set: [1, 2, 3, 4, 5, 6]
 
Input : Array: [a, b, c, d]
Output: Set: [a, b, c, d]

Enfoque: fuerza bruta o método ingenuo

Cree un conjunto vacío (HashSet si los elementos no ordenados lo requieren) Itere los elementos de la array y agregue uno por uno al conjunto.

Ejemplo:

Java

// Convert array to HashSet in Java
import java.io.*;
import java.util.Iterator;
// Importing Set libraries
import java.util.Set;
import java.util.HashSet;
  
class GFG {
    // Function to convert array to set
    static Set<Integer> convert(int[] array)
    {
        // Hash Set Initialisation
        Set<Integer> Set = new HashSet<>();
  
        // Iteration using enhanced for loop
        for (int element : array) {
            Set.add(element);
        }
        // returning the set
        return Set;
    }
  
    // Function to print the set
    static void print(Set<Integer> Set)
    {
        // Implement to iterator the Set
        Iterator<Integer> _iterator = Set.iterator();
  
        // Iterate the elements of Set
        while (_iterator.hasNext()) {
            // print the element of the Set
            System.out.print(_iterator.next() + " ");
        }
    }
    public static void main(String[] args)
  
    {
  
        // Array taken for consideration
        int array[] = { 1, 2, 3, 4, 5, 6 };
  
        // Calling function to convert the array
        Set<Integer> Set = convert(array);
  
        // print the set
        print(Set);
    }
}
Producción

1 2 3 4 5 6

Enfoque 2

Usando Java 8 Stream API: el constructor HashSet puede tomar otro objeto de colección para construir un nuevo conjunto que contenga los elementos de la array especificada.

  1. Obtener el Array a convertir.
  2. Convierta la array en Stream
  3. Convierta la transmisión en conjunto usando Collectors.toSet()
  4. Recopile el conjunto formado utilizando el método collect()
  5. Devuelve el Conjunto formado.

Ejemplo:

Java

// Convert Array to HashSet in Java
  
import java.util.*;
import java.util.stream.*;
  
class GFG {
  
    // Generic function to convert array to set
    public static <T> Set<T> convertArrayToSet(T array[])
    {
        // create a set from the Array
        return Arrays.stream(array).collect(
            Collectors.toSet());
    }
  
    public static void main(String args[])
    {
        // Create an Array
        String array[]
            = { "Geeks", "forGeeks", "A computer Portal" };
  
        // Print the Array
        System.out.println("Array: "
                           + Arrays.toString(array));
  
        // convert the Array to Set
        Set<String> set = convertArrayToSet(array);
  
        // Print the Set
        System.out.println("Set: " + set);
    }
}
Producción

Array: [Geeks, forGeeks, A computer Portal]
Set: [A computer Portal, Geeks, forGeeks]

Publicación traducida automáticamente

Artículo escrito por zack_aayush y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *