The descendingSet() method of java.util.TreeSet<E> class is used to return a reverse order view of the elements contained in this set. The descending set is backed by this set, so changes to the set are reflected in the descending set, and vice-versa. If either set is modified while an iteration over either set is in progress (except through the iterator’s own remove operation), the results of the iteration are undefined.
The returned set has an ordering equivalent to Collections.reverseOrder(comparator()). The expression s.descendingSet().descendingSet() returns a view of s essentially equivalent to s.
Syntax:
public NavigableSet descendingSet()
Return Value: This method returns a reverse order view of this set.
Below are the examples to illustrate the descendingSet() method
Example 1:
Java
// Java program to demonstrate // descendingSet() method // for String value import java.util.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // create tree set object TreeSet<String> treeadd = new TreeSet<String>(); // populate the TreeSet using add() method treeadd.add( "A" ); treeadd.add( "B" ); treeadd.add( "C" ); treeadd.add( "D" ); // Print the TreeSet System.out.println( "TreeSet: " + treeadd); // getting the reverse order view of element // using descendingSet() method NavigableSet<String> treereverse = treeadd.descendingSet(); // getting iterated view of NavigableSet Iterator<String> iterator = treereverse.iterator(); System.out.println( "\nValues using DescendingSet:" ); // printing the integrated value while (iterator.hasNext()) { System.out.println( "Value : " + iterator.next()); } } catch (NullPointerException e) { System.out.println( "Exception thrown : " + e); } } } |
TreeSet: [A, B, C, D] Values using DescendingSet: Value : D Value : C Value : B Value : A
Example 2:
Java
// Java program to demonstrate // descendingSet() method // for Integer value import java.util.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // create tree set object TreeSet<Integer> treeadd = new TreeSet<Integer>(); // populate the TreeSet using add() method treeadd.add( 10 ); treeadd.add( 20 ); treeadd.add( 30 ); treeadd.add( 40 ); // getting the reverse order view of element // using descendingSet() method NavigableSet<Integer> treereverse = treeadd.descendingSet(); // getting iterated view of NavigableSet Iterator<Integer> iterator = treereverse.iterator(); System.out.println( "\nValues using DescendingSet:" ); // printing the integrated value while (iterator.hasNext()) { System.out.println( "Value : " + iterator.next()); } } catch (NullPointerException e) { System.out.println( "Exception thrown : " + e); } } } |
Values using DescendingSet: Value : 40 Value : 30 Value : 20 Value : 10