TreeSet extends AbstractSet and implements the NavigableSet interface. It maintains ascending order for its elements i.e. elements will be in sorted form.
- Just like HashSet, the Java TreeSet class contains unique elements only.
- The access and retrieval times of the TreeSet class are very fast.
- It does not give access to the null element.
- It maintains the ascending order.
- It is non-synchronized.
Hierarchy of the TreeSet class:
The NavigableSet interface is implemented by the Java TreeSet class which extends SortedSet, Set, Collection, and Iterable interfaces in hierarchical order.
TreeSet class declaration:
public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, Serializable
TreeSet class Constructors:
Constructor | Description |
TreeSet() | It will create an empty tree set that will be sorted in ascending order according to the natural order of the tree set. |
TreeSet(Collection<? extends E> c) | It will create a new tree set that contains the elements of the collection c. |
TreeSet(Comparator<? super E> comparator) | It will create an empty tree set that will be sorted according to the given comparator. |
TreeSet(SortedSet<E> s) | It will create a TreeSet that contains the elements of the given SortedSet. |
Methods of Java TreeSet class:
S.No. | Method | Description |
1 | boolean add(E e) | It will add the specified element to this set if it is not already present. |
2 | boolean addAll(Collection<? extends E> c) | It will add all of the elements in the specified collection to this set. |
3 | E ceiling(E e) | It will get the equal or closest greatest element of the specified element from the set, or null there is no such element. |
4 | Comparator<? super E> comparator() | It will get the comparator that arranges elements in order. |
5 | Iterator descendingIterator() | It will iterate the elements in descending order. |
6 | NavigableSet descendingSet() | It will get the elements in reverse order. |
7 | E floor(E e) | It will get the equal or closest least element of the specified element from the set, or null there is no such element. |
8 | SortedSet headSet(E toElement) | It will get the group of elements that are less than the specified element. |
9 | NavigableSet headSet(E toElement, boolean inclusive) | It will get the group of elements that are less than or equal to(if, inclusive is true) the specified element. |
10 | E higher(E e) | It will get the closest greatest element of the specified element from the set, or null there is no such element. |
11 | Iterator iterator() | It will iterate the elements in ascending order. |
12 | E lower(E e) | It will get the closest least element of the specified element from the set, or null there is no such element. |
13 | E pollFirst() | It will retrieve and eliminate the lowest(first) element. |
14 | E pollLast() | It will retrieve and eliminate the highest(last) element. |
15 | Spliterator spliterator() | It will create a late-binding and fail-fast spliterator over the elements. |
16 | NavigableSet subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive) | It will get a set of elements that lie between the given range. |
17 | SortedSet subSet(E fromElement, E toElement)) | It will get a set of elements that lie between the given range which includes fromElement and excludes toElement. |
18 | SortedSet tailSet(E fromElement) | It will get a set of elements that are greater than or equal to the specified element. |
19 | NavigableSet tailSet(E fromElement, boolean inclusive) | It will get a set of elements that are greater than or equal to (if, inclusive is true) the specified element. |
20 | boolean contains(Object o) | It will get true if this set contains the specified element. |
21 | boolean isEmpty() | It will get true if this set contains no elements. |
22 | boolean remove(Object o) | It will eliminate the specified element from this set if it is present. |
23 | void clear() | It will eliminate all of the elements from this set. |
24 | Object clone() | It will get a shallow copy of this TreeSet instance. |
25 | E first() | It will get the first (lowest) element currently in this sorted set. |
26 | E last() | It will get the last (highest) element currently in this sorted set. |
27 | int size() | It will get the number of elements in this set. |
TreeSet example:
TreeSetTest.java
import java.util.Iterator; import java.util.Set; import java.util.TreeSet; /** * This class is used to show the TreeSet functionality. * @author w3schools */ public class TreeSetTest { public static void main(String args[]){ //Create TreeSet object. Set treeSet = new TreeSet(); //Add objects to the HashSet. treeSet.add("Roxy"); treeSet.add("Sunil"); treeSet.add("Sandy"); treeSet.add("Munish"); treeSet.add("Pardeep"); //Print the TreeSet object. System.out.println("TreeSet elements:"); System.out.println(treeSet); //Print the TreeSet elements using iterator. Iterator iterator=treeSet.iterator(); System.out.println("TreeSet elements using iterator:"); while(iterator.hasNext()){ System.out.println(iterator.next()); } } } |
Output:
TreeSet elements: [Munish, Pardeep, Roxy, Sandy, Sunil] TreeSet elements using iterator: Munish Pardeep Roxy Sandy Sunil |
Example 1: Traversing elements in descending order:
import java.util.*; public class TreeSetExample{ public static void main(String args[]){ TreeSet<String> set=new TreeSet<String>(); set.add("AA"); set.add("BB"); set.add("CC"); System.out.println("Traversing element through Iterator in descending order"); Iterator i=set.descendingIterator(); while(i.hasNext()) { System.out.println(i.next()); } } } |
Output:
Example 2: To retrieve and remove the highest and lowest Value:
import java.util.*; public class TreeSetExample{ public static void main(String args[]){ TreeSet<Integer> set=new TreeSet<Integer>(); set.add(10); set.add(40); set.add(30); set.add(20); System.out.println("Lowest Value: "+set.pollFirst()); System.out.println("Highest Value: "+set.pollLast()); } } |
Output:
Example 3: To perform various NavigableSet operations:
import java.util.*; class TreeSetExample{ public static void main(String args[]){ TreeSet<String> set=new TreeSet<String>(); set.add("XYZ"); set.add("XZY"); set.add("YZX"); set.add("ZYX"); set.add("YXZ"); System.out.println("Initial Set: "+set); System.out.println("Reverse Set: "+set.descendingSet()); System.out.println("Headset: "+set.headSet("YZX", true)); System.out.println("SubSet: "+set.subSet("XYZ", false, "YXZ", true)); System.out.println("TailSet: "+set.tailSet("YZX", false)); } } |
Output:
Example 4: To perform various SortedSetSet operations.
import java.util.*; public class TreeSetExample{ public static void main(String args[]){ TreeSet<String> set=new TreeSet<String>(); set.add("XYZ"); set.add("XZY"); set.add("YZX"); set.add("ZYX"); set.add("YXZ"); System.out.println("Initial Set: "+set); System.out.println("Headset: "+set.headSet("YZX")); System.out.println("SubSet: "+set.subSet("XYZ", "YXZ")); System.out.println("TailSet: "+set.tailSet("YZX")); } } |
Output:
Next Topic: ArrayList in java with example.
Previous Topic: LinkedHashMap in java with example.