Related Articles
Getting Least Value Element From a Set by Using Sorting Logic on TreeSet in Java
• Difficulty Level : Medium
• Last Updated : 13 Jan, 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

1. Use comparators to order the object of a user-defined class.
2. Implementing the sorting functionality that overrides the compare() method to sort the TreeSet by value.
3. After sorting, the first object of the TreeSet will be the least value element.

Implementation:

Example

## 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 auxulary classes are required``// Class1- Sorting logic class invoking comparator``// Class2- Element class``// Class3 - Main class(Implementtion class)`` ` `// Class1- Sorting logic where``// comparator holds the sorting logic``class` `MySort ``implements` `Comparator {`` ` `    ``@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``        ``// Comararing values of element``        ``if` `(e1.getvalue() > e2.getvalue()) {`` ` `            ``// If conition holds true``            ``return` `1``;``        ``}``        ``else` `{`` ` `            ``// If conition 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 Tree``            ``= ``new` `TreeSet(``new` `MySort());`` ` `        ``// Adding elements to abobe 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());``    ``}``}`
Output
```Least value =>element: D, value: 4564
```

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up