LinkedHashSet es una implementación de Set Abstract Data Type (ADT). Se extiende desde la clase HashSet que a su vez implementa Set Interface. La diferencia entre LinkedHashSet y HashSet es la propiedad de mantener el orden de los elementos. LinkedList es solo un contenedor que contiene una secuencia de elementos. Por definición, Set no debe contener elementos duplicados. Esta propiedad no tiene por qué ser válida para LinkedList ADT. Cuando se deben duplicar elementos y se debe mantener el orden, se debe usar LinkedHashSet.
Métodos:
Básicamente, existen tres formas estándar de obtener un elemento de LinkedHashSet sin cambiarlo a una estructura de datos diferente.
- Convertirlo en una array o Lista
- Uso de iteradores
- Uso de flujos
Implementación: obtener el primer elemento de LinkedHashSet
Método 1: al convertirlo en una array o lista
Ejemplo
Java
// Java Program to Get the First Element from LinkedHashSet // by converting it to an array or List // Array is demonstrated below so do with List // Importing generic java packages import java.io.*; import java.lang.*; import java.util.*; // Class public class GFG { // Main driver method public static void main(String[] args) throws java.lang.Exception { // Creating a LinkedHashMap object // Declaring object of Integer type LinkedHashSet<Integer> hashSet = new LinkedHashSet<Integer>(); // Adding elements to LinkedHashMap hashSet.add(2); hashSet.add(1); hashSet.add(4); hashSet.add(6); hashSet.add(8); // Condition check using isEmpty() method which // holds // True till there is a single element in an object // is remaining False, when there is no object left // or if initially there was no element added if (!hashSet.isEmpty()) { // Converting the above Map to an array Integer arr[] = new Integer[hashSet.size()]; arr = hashSet.toArray(arr); // Accessing the first element by passing 0 // as an argument which by default // accesses and prints out first element System.out.println("First element: " + arr[0]); } } }
First element: 2
Método 2: usar iteradores
Ejemplo
Java
// Java Program to Get the First Element from LinkedHashSet // Using Iterators // Importing generic java packages import java.util.*; import java.lang.*; import java.io.*; // Class public class GFG { // Main driver method public static void main(String[] args) throws java.lang.Exception { // Creating a LinkedHashMap LinkedHashSet<Integer> hashSet = new LinkedHashSet<Integer>(); // Adding elements to LinkedHashMap hashSet.add(1); hashSet.add(2); hashSet.add(3); hashSet.add(4); hashSet.add(5); // Iterator over LinkedHashMap Iterator<Integer> iter = hashSet.iterator(); if (iter != null && iter.hasNext()) { // Display the first element of Map using next() // ethod System.out.println( "First element in LinkedHashSet: " + iter.next()); } } }
First element in LinkedHashSet: 1
Método 3: Uso de flujos
Ejemplo:
Java
// Java Program to Get the First Element from LinkedHashSet // Using Streams // Importing generic java packages import java.util.*; import java.lang.*; import java.io.*; // Class class GFG { // Main driver method public static void main(String[] args) throws java.lang.Exception { // Creating a LinkedHashMap LinkedHashSet<Integer> hashSet = new LinkedHashSet<Integer>(); // Adding elements to LinkedHashMap hashSet.add(1); hashSet.add(2); hashSet.add(3); hashSet.add(4); hashSet.add(5); // Checking whether Map is empty or not if (hashSet.size() == 0) // Display message System.out.println("The Set is Empty!"); else { // Using stream() through findFirst() method // over the elements of LinkedHashMap int first = hashSet.stream().findFirst().get(); // Printing the first element of LinkedHashMap System.out.println( "First element in LinkedHashSet: " + first); } } }
First element in LinkedHashSet: 1