Como sabemos que HashSet contiene solo elementos únicos, es decir, no se permiten entradas duplicadas, y dado que nuestro objetivo es eliminar las entradas duplicadas de la colección , para eliminar todas las entradas duplicadas de la colección, usaremos HashSet . La clase HashSet implementa la interfaz Set, respaldada por una tabla hash que en realidad es una instancia de HashMap . La clase también ofrece un rendimiento de tiempo constante para las operaciones básicas como agregar, eliminar, contener y dimensionar, suponiendo que la función hash dispersa los elementos correctamente entre los cubos. HashSet generalmente se usa para controlar si un elemento está presente en una lista o no.
Nota: Dado que estamos usando HashSet, el orden de inserción no se conservará y cada vez que ejecutemos el código obtendremos un resultado diferente (el orden de los elementos será diferente). Entonces, si queremos conservar el orden de los elementos mientras los insertamos, se supone que debemos usar LinkedHashSet.
Existen básicamente dos métodos para eliminar las entradas duplicadas de la colección:
- Usando HashSet
- Uso de LinkHashSet
Ahora veamos la implementación usando el programa java para eliminar las entradas duplicadas usando ambos métodos uno por uno:
1. Usando HashSet
Java
// Java Program to remove the duplicate entries from // collection using HashSet import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; class GFG { public static void main(String[] args) { // making the collection object Collection<String> collection = new ArrayList<>(); // adding the elements to the collection collection.add("Geeks"); collection.add("For"); collection.add("Geeks"); collection.add("Internship"); collection.add("Internship"); collection.add("2021"); collection.add("2021"); // Displaying the collection elements System.out.println( "Displaying the initial collection\n"); System.out.println(collection); // HashSEt for deleting duplicate entries // in the collection by passing collection // in the constructor of the HashSet HashSet<String> hashSet = new HashSet<>(collection); // Displaying the HashSet System.out.println("\nDisplaying the HashSet\n"); System.out.println(hashSet); // clearing all the elements of the collection collection.clear(); // adding all the elements back // to the collection from HashSet collection.addAll(hashSet); // Displaying the collection System.out.println( "\nDisplaying the collection after deleting duplicates entries\n"); System.out.println(collection); } }
Producción:
Visualización de la colección inicial
[Geeks, Para, Geeks, Prácticas, Prácticas, 2021, 2021]
Visualización del HashSet
[Geeks, Para, 2021, Prácticas]
Visualización de la colección después de eliminar entradas duplicadas
[Geeks, Para, 2021, Prácticas]
2. Uso de LinkedHashSet
Java
// Java Program to remove the duplicate entries from // collection using LinkedHashSet import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashSet; class GFG { public static void main(String[] args) { // making the collection object Collection<String> collection = new ArrayList<>(); // adding the elements to the collection collection.add("Geeks"); collection.add("For"); collection.add("Geeks"); collection.add("Internship"); collection.add("Internship"); collection.add("2021"); collection.add("2021"); // Displaying the collection elements System.out.println( "Displaying the initial collection\n"); System.out.println(collection); // LinkedHashSet for deleting duplicate entries // in the collection by passing collection // in the constructor of the HashSet LinkedHashSet<String> hashSet = new LinkedHashSet<>(collection); // Displaying the HashSet System.out.println("\nDisplaying the HashSet\n"); System.out.println(hashSet); // clearing all the elements of the collection collection.clear(); // adding all the elements back // to the collection from HashSet collection.addAll(hashSet); // Displaying the collection System.out.println( "\nDisplaying the collection after deleting duplicates entries\n"); System.out.println(collection); } }
Producción:
Visualización de la colección inicial
[Geeks, Para, Geeks, Prácticas, Prácticas, 2021, 2021]
Visualización del HashSet
[Geeks, Para, Prácticas, 2021]
Visualización de la colección después de eliminar entradas duplicadas
[Geeks, Para, Prácticas, 2021]