¿Cómo conservar el orden de inserción de los elementos Java HashSet?

Cuando los elementos se obtienen del HashSet debido al hash, el orden en que se insertaron no se mantiene durante la recuperación. HashSet almacena los elementos usando un mecanismo llamado hashing. Podemos lograr la tarea dada usando LinkedHashSet. La clase LinkedHashSet implementa una lista doblemente enlazada para que pueda atravesar todos los elementos.

Ejemplo:

Input : HashSetInput = {c, a, b}
Output: HashSetPrint = {c, a, b}

Input : HashSetInput = {"first", "second"}
Output: HashSetPrint = {"first", "second"}

Implementación con HashSet: (Orden no mantenida)

Sintaxis:

HashSet<String> num = new HashSet<String>();

Acercarse:

  1. Crear objeto HashSet.
  2. Inserte varios elementos en el HashSet.
  3. Imprime el HashSet. (Orden no mantenida)

A continuación se muestra la implementación del enfoque anterior:

Java

// Preserve insertion order of Java HashSet elements
// Order not maintained because HashSet used
import java.util.HashSet;
import java.util.Set;
  
public class PreserveHashSetOrderExample {
  
    public static void main(String[] args)
    {
  
        Set<Integer> hSetNumbers = new HashSet<Integer>();
  
        hSetNumbers.add(1);
        hSetNumbers.add(13);
        hSetNumbers.add(2);
        hSetNumbers.add(4);
  
        for (Integer number : hSetNumbers) {
            System.out.println(number);
        }
    }
}
Producción

1
2
4
13

Implementación con LinkedHashSet: (Orden mantenida)

Sintaxis:

HashSet<String> num = new LinkedHashSet<String>();

Acercarse:

  1. Cree un objeto HashSet e inicialícelo con el constructor de LinkedHashSet.
  2. Inserte varios elementos en el HashSet.
  3. Imprimir el HashSet. (Orden mantenida)

A continuación se muestra la implementación del enfoque anterior:

Java

// Preserve insertion order of Java HashSet elements
// Using LinkedHashSet
import java.util.LinkedHashSet;
import java.util.Set;
  
public class PreserveHashSetOrderExample {
  
    public static void main(String[] args)
    {
  
        Set<Integer> setNumbers
            = new LinkedHashSet<Integer>();
  
        setNumbers.add(1);
        setNumbers.add(13);
        setNumbers.add(2);
        setNumbers.add(4);
  
        for (Integer number : setNumbers) {
            System.out.println(number);
        }
    }
}
Producción

1
13
2
4

Publicación traducida automáticamente

Artículo escrito por mayanktyagi1709 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 *