Getting Least Value Element From a Set by Using Sorting Logic on TreeSet in Java
Last Updated :
21 Aug, 2021
In order to get the value element of the user-defined object, one needs to implement the sorting logic in TreeSet. Now in order to implement the sorting logic on the user-defined objects, the Comparator object needs to be passed along the TreeSet constructor call. Further, Comparator implementation will hold the sorting logic. For this, the compare() method needs to be overridden to provide sorting logic on user-defined objects. Lastly, the least element is extracted out using the first() method.
Illustration:
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
Approach
To get the least value element TreeSet
- Use comparators to order the object of a user-defined class.
- Implementing the sorting functionality that overrides the compare() method to sort the TreeSet by value.
- After sorting, the first object of the TreeSet will be the least value element.
Implementation:
Example
Java
import java.io.*;
import java.util.Comparator;
import java.util.TreeSet;
class MySort implements Comparator<Element> {
@Override
public int compare(Element e1, Element e2)
{
if (e1.getvalue() > e2.getvalue()) {
return 1 ;
}
else {
return - 1 ;
}
}
}
class Element {
private String name;
private int value;
public Element(String n, int s)
{
this .name = n;
this .value = s;
}
public String getname() { return name; }
public int getvalue() { return value; }
public String toString()
{
return "element: " + this .name
+ ", value: " + this .value;
}
}
class GFG {
public static void main(String[] args)
{
TreeSet<Element> Tree
= new TreeSet<Element>( new MySort());
Tree.add( new Element( "A" , 36778 ));
Tree.add( new Element( "B" , 456456 ));
Tree.add( new Element( "C" , 76433 ));
Tree.add( new Element( "D" , 4564 ));
System.out.println( "Least value =>" + Tree.first());
}
}
|
Output
Least value =>element: D, value: 4564
Share your thoughts in the comments
Please Login to comment...