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); } }
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.
- Obtener el Array a convertir.
- Convierta la array en Stream
- Convierta la transmisión en conjunto usando Collectors.toSet()
- Recopile el conjunto formado utilizando el método collect()
- 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); } }
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