Obtener el elemento de menor valor de un conjunto mediante el uso de la lógica de clasificación en TreeSet en Java

Para obtener el elemento de valor del objeto definido por el usuario, es necesario implementar la lógica de clasificación en TreeSet. Ahora, para implementar la lógica de clasificación en los objetos definidos por el usuario, el objeto Comparator debe pasarse a lo largo de la llamada del constructor TreeSet. Además, la implementación de Comparator mantendrá la lógica de clasificación. Para esto, el método compare() debe anularse para proporcionar una lógica de clasificación en los objetos definidos por el usuario. Por último, el elemento mínimo se extrae utilizando el método first() .

Ilustración:

Input : Set: ["A"=36678 , "B"=456456 ,"C"=76434 ,"D"=4564]
Output: Least value => element: D, value: 4564


Input : Set: ["x"=1, "y"=2 ,"z"=3]
Output: Set: Least value =>element: x, value: 1

Acercarse

Para obtener el elemento TreeSet de menor valor

  1. Utilice comparadores para ordenar el objeto de una clase definida por el usuario.
  2. Implementar la funcionalidad de clasificación que anula el método compare() para clasificar el TreeSet por valor.
  3. Después de ordenar, el primer objeto del TreeSet será el elemento de menor valor.

Implementación:

Ejemplo

Java

// Java program to find out the least value element
// in a TreeSet
 
// Importing java input output libraries
// Importing Comparator and TreeSet class
// from java.util package
import java.io.*;
import java.util.Comparator;
import java.util.TreeSet;
 
// Two auxiliary classes are required
// Class1- Sorting logic class invoking comparator
// Class2- Element class
// Class3 - Main class(Implementation class)
 
// Class1- Sorting logic where
// comparator holds the sorting logic
class MySort implements Comparator<Element> {
 
    @Override
    // Overriding
    // To provide the sorting logic to below created TreeSet
    // in main() method  using compare() method
    public int compare(Element e1, Element e2)
    {
        // Condition check
        // Comparing values of element
        if (e1.getvalue() > e2.getvalue()) {
 
            // If condition holds true
            return 1;
        }
        else {
 
            // If condition is false
            return -1;
        }
    }
}
 
// Class- 2
// key for TreeSet --> Name
class Element {
 
    // Member variables of this class
    private String name;
    private int value;
 
    // Constructor of this class
    public Element(String n, int s)
    {
        // Referring to same object
        // using this keyword
        this.name = n;
        this.value = s;
    }
 
    // key--> Name
    // Using name as a key for TreeSet
    public String getname() { return name; }
 
    // Return value for the given key(name)
    public int getvalue() { return value; }
 
    // Format in which output is returned
    public String toString()
    {
        return "element: " + this.name
            + ", value: " + this.value;
    }
}
 
// Main Class- Implementing sorting functionality
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Implementing sorting functionality with TreeSet
        // by implementing Comparator and
        // calling (MySort) from TreeSet constructor
 
        // Creating an object of Treeset
        // where object type is Element
        TreeSet<Element> Tree
            = new TreeSet<Element>(new MySort());
 
        // Adding elements to adobe object of TreeSet
        // Custom inputs
        Tree.add(new Element("A", 36778));
        Tree.add(new Element("B", 456456));
        Tree.add(new Element("C", 76433));
        Tree.add(new Element("D", 4564));
 
        // Printing first element of above created TreeSet
        // which will be least value among all elements
        System.out.println("Least value =>" + Tree.first());
    }
}
Producción

Least value =>element: D, value: 4564

Publicación traducida automáticamente

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