¿Cómo ordenar los elementos LinkedHashSet en orden descendente en Java?

LinkedHashSet es una versión ordenada de HashSet que mantiene una lista doblemente vinculada en todos los elementos. Cuando se necesita mantener el orden de iteración, se utiliza esta clase. Cuando se itera a través de un HashSet, el orden es impredecible, mientras que una iteración de LinkedHashSet es a través de los elementos en el orden en que se insertaron. Al recorrer LinkedHashSet con un iterador, los elementos volverán al orden en que se insertaron.

Los elementos en HashSet mantienen el orden, mientras que TreeSet mantiene los objetos ordenados definidos por el método comparable o comparador en Java. Los elementos de TreeSet se ordenan en orden ascendente de forma predeterminada. Entonces, ahora el problema que ocurre es ordenar HashSet dado en orden descendente. Entonces, aquí, con la ayuda de un TreeSet, es necesario almacenar el elemento en orden descendente.

Ilustración:

Input : LinkedHashSet = [4, 3, 6, 5, 8]
Output: LinkedHashSet = [8, 6, 5, 4, 3]

Input: LinkedHashSet = [22, 44, 33, 66, 55]
Output: LinkedHashSet = [66, 55, 44, 33, 22]

Algoritmo

  1. Cree HashSet para recibir información y almacenar todos los elementos del usuario.
  2. Ahora, cree TreeSet que almacene los elementos en orden decreciente agregando todos los elementos de arriba HashSet en orden inverso.
Pseude Code: TreeSet<Integer> ts = new TreeSet<>(Collections.reverseOrder());
             ts.addAll(lh);

Ejemplo:

Java

// Java Program to sort LinkedHashSet elements
// in descending order
 
// Importing java generic libraries
import java.util.*;
import java.io.*;
 
// Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating and Initializing LinkedHashSet
        Set<Integer> linkhasset
            = new LinkedHashSet<Integer>();
 
        // Adding elements to above LinkedHashSet
        // Custom inputs
        linkhasset.add(26);
        linkhasset.add(23);
        linkhasset.add(24);
        linkhasset.add(21);
        linkhasset.add(25);
        linkhasset.add(22);
 
        // TreeSet storing elements in descending order by
        // adding all elements of HashSet in reverse order
        TreeSet<Integer> ts
            = new TreeSet<>(Collections.reverseOrder());
 
        // Add all elements from LinkedHashSet to TreeSet
        ts.addAll(linkhasset);
 
        // Print all elements of TreeSet
        System.out.println("Element in descending order : "
                           + ts);
    }
}
Producción

Element in descending order : [26, 25, 24, 23, 22, 21]

Publicación traducida automáticamente

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