Java : TreeSet with Examples
TreeSet (Java SE 23 & JDK 23) in Java with Examples.
 You will find code samples for most of the TreeSet<E> methods.
Summary
A NavigableSet implementation based on a TreeMap. The elements are ordered using their natural ordering, or by a Comparator provided at set creation time, depending on which constructor is used.
final var set = new TreeSet<String>();
System.out.println(set); // []
System.out.println(set.isEmpty()); // true
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.size()); // 3
System.out.println(set.contains("a")); // true
System.out.println(set.contains("b")); // true
System.out.println(set.contains("x")); // false
 
      final var treeSet = new TreeSet<String>();
treeSet.add("ccc");
treeSet.add("ddd");
treeSet.add("aaa");
treeSet.add("bbb");
System.out.println(treeSet); // [aaa, bbb, ccc, ddd]
final var hashSet = new HashSet<String>();
hashSet.add("ccc");
hashSet.add("ddd");
hashSet.add("aaa");
hashSet.add("bbb");
System.out.println(hashSet); // [aaa, ccc, bbb, ddd]
 
Constructors
TreeSet ()
Constructs a new, empty tree set, sorted according to the natural ordering of its elements.
final var set = new TreeSet<String>();
System.out.println(set); // []
System.out.println(set.isEmpty()); // true
set.add("b");
set.add("a");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.size()); // 3
 
       final var set = new TreeSet<Integer>();
set.add(100);
set.add(999);
set.add(-200);
System.out.println(set); // [-200, 100, 999]
 
      TreeSet (Collection<? extends E> c)
Constructs a new tree set containing the elements in the specified collection, sorted according to the natural ordering of its elements.
final var c = List.of("b", "a", "c");
final var set = new TreeSet<>(c);
System.out.println(set); // [a, b, c]
System.out.println(set.size()); // 3
 
      TreeSet (Comparator<? super E> comparator)
Constructs a new, empty tree set, sorted according to the specified comparator.
final var src = List.of("bbb", "aaa", "ccc");
final var set1 = new TreeSet<String>();
set1.addAll(src);
System.out.println(set1); // [aaa, bbb, ccc]
final var set2 = new TreeSet<String>(Comparator.reverseOrder());
set2.addAll(src);
System.out.println(set2); // [ccc, bbb, aaa]
 
      TreeSet (SortedSet<E> s)
Constructs a new tree set containing the same elements and using the same ordering as the specified sorted set.
final var s = new TreeSet<String>(Comparator.reverseOrder());
s.add("a");
s.add("b");
s.add("c");
System.out.println(s); // [c, b, a]
final var set = new TreeSet<>(s);
System.out.println(set); // [c, b, a]
System.out.println(set.size()); // 3
 
      Methods
boolean add (E e)
Adds the specified element to this set if it is not already present.
final var set = new TreeSet<String>();
System.out.println(set); // []
System.out.println(set.add("a")); // true
System.out.println(set); // [a]
System.out.println(set.add("b")); // true
System.out.println(set); // [a, b]
System.out.println(set.add("c")); // true
System.out.println(set); // [a, b, c]
System.out.println(set.add("a")); // false
System.out.println(set); // [a, b, c]
 
      boolean addAll (Collection<? extends E> c)
Adds all of the elements in the specified collection to this set.
final var src = Set.of("a", "b", "c");
{
    final var set = new TreeSet<>(src);
    System.out.println(set); // [a, b, c]
    System.out.println(set.addAll(Set.of("d", "e", "f"))); // true
    System.out.println(set);  // [a, b, c, d, e, f]
}
{
    final var set = new TreeSet<>(src);
    System.out.println(set); // [a, b, c]
    System.out.println(set.addAll(Set.of("a", "b", "c"))); // false
    System.out.println(set); // [a, b, c]
}
{
    final var set = new TreeSet<>(src);
    System.out.println(set); // [a, b, c]
    System.out.println(set.addAll(Set.of("a", "c", "e", "f"))); // true
    System.out.println(set); // [a, b, c, e, f]
}
 
      void addFirst (E e)
Throws UnsupportedOperationException.
final var set = new TreeSet<>();
System.out.println(set); // []
try {
    set.addFirst("aaa");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}
// Result
// ↓
//UnsupportedOperationException!
 
      void addLast (E e)
Throws UnsupportedOperationException.
final var set = new TreeSet<>();
System.out.println(set); // []
try {
    set.addLast("aaa");
} catch (UnsupportedOperationException e) {
    System.out.println("UnsupportedOperationException!");
}
// Result
// ↓
//UnsupportedOperationException!
 
      E ceiling (E e)
Returns the least element in this set greater than or equal to the given element, or null if there is no such element.
final var set = new TreeSet<String>();
set.add("b");
set.add("d");
set.add("f");
System.out.println(set); // [b, d, f]
System.out.println(set.ceiling("a")); // b
System.out.println(set.ceiling("b")); // b
System.out.println(set.ceiling("c")); // d
System.out.println(set.ceiling("d")); // d
System.out.println(set.ceiling("e")); // f
System.out.println(set.ceiling("f")); // f
System.out.println(set.ceiling("g")); // null
 
      void clear ()
Removes all of the elements from this set.
final var set = new TreeSet<String>();
System.out.println(set); // []
set.add("a");
System.out.println(set); // [a]
set.add("b");
System.out.println(set); // [a, b]
set.clear();
System.out.println(set); // []
 
      Object clone ()
Returns a shallow copy of this TreeSet instance.
final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
final var cloned = set.clone();
System.out.println(cloned); // [a, b, c]
System.out.println(cloned.getClass()); // class java.util.TreeSet
 
      Comparator<? super E> comparator ()
Returns the comparator used to order the elements in this set, or null if this set uses the natural ordering of its elements.
final var set = new TreeSet<String>();
System.out.println(set); // []
final var comparator = set.comparator();
System.out.println(comparator); // null
 
       final var set = new TreeSet<String>(Comparator.reverseOrder());
System.out.println(set); // []
final var comparator = set.comparator();
System.out.println(Objects.equals(comparator, Comparator.reverseOrder())); // true
 
       final var set = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
System.out.println(set); // []
final var comparator = set.comparator();
System.out.println(Objects.equals(comparator, String.CASE_INSENSITIVE_ORDER)); // true
 
      boolean contains (Object o)
Returns true if this set contains the specified element.
final var set = new TreeSet<String>();
Collections.addAll(set, "a", "b", "c");
System.out.println(set); // [a, b, c]
System.out.println(set.contains("")); // false
System.out.println(set.contains("a")); // true
System.out.println(set.contains("b")); // true
System.out.println(set.contains("c")); // true
System.out.println(set.contains("X")); // false
System.out.println(set.contains("abc")); // false
 
      Iterator<E> descendingIterator ()
Returns an iterator over the elements in this set in descending order.
final var set = new TreeSet<String>();
set.add("aaa");
set.add("bbb");
set.add("ccc");
System.out.println(set); // [aaa, bbb, ccc]
final var iterator = set.descendingIterator();
System.out.println("-- forEachRemaining --");
iterator.forEachRemaining(s -> {
    System.out.println(s);
});
// Result
// ↓
//-- forEachRemaining --
//ccc
//bbb
//aaa
 
      NavigableSet<E> descendingSet ()
Returns a reverse order view of the elements contained in this set.
final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
final var descSet = set.descendingSet();
System.out.println(descSet); // [c, b, a]
set.add("d");
System.out.println(set); // [a, b, c, d]
System.out.println(descSet); // [d, c, b, a]
descSet.remove("b");
System.out.println(set); // [a, c, d]
System.out.println(descSet); // [d, c, a]
 
      E first ()
Returns the first (lowest) element currently in this set.
final var set = new TreeSet<String>();
System.out.println(set); // []
set.add("b");
System.out.println(set); // [b]
System.out.println(set.first()); // b
set.add("c");
System.out.println(set); // [b, c]
System.out.println(set.first()); // b
set.add("a");
System.out.println(set); // [a, b, c]
System.out.println(set.first()); // a
 
       final var set = new TreeSet<String>();
System.out.println(set); // []
try {
    set.first();
} catch (NoSuchElementException e) {
    System.out.println(e);
}
// Result
// ↓
//java.util.NoSuchElementException
 
      E floor (E e)
Returns the greatest element in this set less than or equal to the given element, or null if there is no such element.
final var set = new TreeSet<String>();
set.add("b");
set.add("d");
set.add("f");
System.out.println(set); // [b, d, f]
System.out.println(set.floor("a")); // null
System.out.println(set.floor("b")); // b
System.out.println(set.floor("c")); // b
System.out.println(set.floor("d")); // d
System.out.println(set.floor("e")); // d
System.out.println(set.floor("f")); // f
System.out.println(set.floor("g")); // f
 
      SortedSet<E> headSet (E toElement)
Returns a view of the portion of this set whose elements are strictly less than toElement.
final var set = new TreeSet<String>();
set.add("x");
set.add("y");
set.add("z");
System.out.println(set); // [x, y, z]
final var headSet = set.headSet("z");
System.out.println(headSet); // [x, y]
set.add("a");
System.out.println(set); // [a, x, y, z]
System.out.println(headSet); // [a, x, y]
headSet.remove("x");
System.out.println(set); // [a, y, z]
System.out.println(headSet); // [a, y]
 
       final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.headSet("a")); // []
System.out.println(set.headSet("b")); // [a]
System.out.println(set.headSet("c")); // [a, b]
System.out.println(set.headSet("d")); // [a, b, c]
 
      NavigableSet<E> headSet (E toElement, boolean inclusive)
Returns a view of the portion of this set whose elements are less than (or equal to, if inclusive is true) toElement.
final var set = new TreeSet<String>();
set.add("x");
set.add("y");
set.add("z");
System.out.println(set); // [x, y, z]
final var headSet = set.headSet("y", true);
System.out.println(headSet); // [x, y]
set.add("a");
System.out.println(set); // [a, x, y, z]
System.out.println(headSet); // [a, x, y]
headSet.remove("x");
System.out.println(set); // [a, y, z]
System.out.println(headSet); // [a, y]
 
       final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.headSet("a")); // []
System.out.println(set.headSet("a", true)); // [a]
System.out.println(set.headSet("b")); // [a]
System.out.println(set.headSet("b", true)); // [a, b]
System.out.println(set.headSet("c")); // [a, b]
System.out.println(set.headSet("c", true)); // [a, b, c]
System.out.println(set.headSet("d")); // [a, b, c]
System.out.println(set.headSet("d", true)); // [a, b, c]
 
      E higher (E e)
Returns the least element in this set strictly greater than the given element, or null if there is no such element.
final var set = new TreeSet<String>();
set.add("b");
set.add("d");
set.add("f");
System.out.println(set); // [b, d, f]
System.out.println(set.higher("a")); // b
System.out.println(set.higher("b")); // d
System.out.println(set.higher("c")); // d
System.out.println(set.higher("d")); // f
System.out.println(set.higher("e")); // f
System.out.println(set.higher("f")); // null
System.out.println(set.higher("g")); // null
 
      boolean isEmpty ()
Returns true if this set contains no elements.
final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.isEmpty()); // false
set.clear();
System.out.println(set); // []
System.out.println(set.isEmpty()); // true
 
      Iterator<E> iterator ()
Returns an iterator over the elements in this set in ascending order.
final var set = new TreeSet<String>();
set.add("aaa");
set.add("bbb");
set.add("ccc");
System.out.println(set); // [aaa, bbb, ccc]
final var iterator = set.iterator();
System.out.println("-- forEachRemaining --");
iterator.forEachRemaining(s -> {
    System.out.println(s);
});
// Result
// ↓
//-- forEachRemaining --
//aaa
//bbb
//ccc
 
      E last ()
Returns the last (highest) element currently in this set.
final var set = new TreeSet<String>();
System.out.println(set); // []
set.add("b");
System.out.println(set); // [b]
System.out.println(set.last()); // b
set.add("a");
System.out.println(set); // [a, b]
System.out.println(set.last()); // b
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.last()); // c
 
       final var set = new TreeSet<String>();
System.out.println(set); // []
try {
    set.last();
} catch (NoSuchElementException e) {
    System.out.println(e);
}
// Result
// ↓
//java.util.NoSuchElementException
 
      E lower (E e)
Returns the greatest element in this set strictly less than the given element, or null if there is no such element.
final var set = new TreeSet<String>();
set.add("b");
set.add("d");
set.add("f");
System.out.println(set); // [b, d, f]
System.out.println(set.lower("a")); // null
System.out.println(set.lower("b")); // null
System.out.println(set.lower("c")); // b
System.out.println(set.lower("d")); // b
System.out.println(set.lower("e")); // d
System.out.println(set.lower("f")); // d
System.out.println(set.lower("g")); // f
 
      E pollFirst ()
Retrieves and removes the first (lowest) element, or returns null if this set is empty (optional operation).
final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.pollFirst()); // a
System.out.println(set); // [b, c]
System.out.println(set.pollFirst()); // b
System.out.println(set); // [c]
System.out.println(set.pollFirst()); // c
System.out.println(set); // []
System.out.println(set.pollFirst()); // null
 
      E pollLast ()
Retrieves and removes the last (highest) element, or returns null if this set is empty (optional operation).
final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.pollLast()); // c
System.out.println(set); // [a, b]
System.out.println(set.pollLast()); // b
System.out.println(set); // [a]
System.out.println(set.pollLast()); // a
System.out.println(set); // []
System.out.println(set.pollLast()); // null
 
      boolean remove (Object o)
Removes the specified element from this set if it is present.
final var src = Set.of("a", "b", "c");
{
    final var set = new TreeSet<>(src);
    System.out.println(set); // [a, b, c]
    System.out.println(set.remove("")); // false
    System.out.println(set); // [a, b, c]
}
{
    final var set = new TreeSet<>(src);
    System.out.println(set); // [a, b, c]
    System.out.println(set.remove("a")); // true
    System.out.println(set); // [b, c]
}
{
    final var set = new TreeSet<>(src);
    System.out.println(set); // [a, b, c]
    System.out.println(set.remove("b")); // true
    System.out.println(set); // [a, c]
}
{
    final var set = new TreeSet<>(src);
    System.out.println(set); // [a, b, c]
    System.out.println(set.remove("X")); // false
    System.out.println(set); // [a, b, c]
}
 
      int size ()
Returns the number of elements in this set (its cardinality).
final var set1 = new TreeSet<String>();
System.out.println(set1); // []
System.out.println(set1.size()); // 0
final var set2 = new TreeSet<String>();
Collections.addAll(set2, "a", "b", "c");
System.out.println(set2); // [a, b, c]
System.out.println(set2.size()); // 3
 
      Spliterator<E> spliterator ()
Creates a late-binding and fail-fast Spliterator over the elements in this set.
final var set = new TreeSet<String>();
set.add("aaa");
set.add("bbb");
set.add("ccc");
System.out.println(set); // [aaa, bbb, ccc]
final var spliterator = set.spliterator();
System.out.println("-- forEachRemaining --");
spliterator.forEachRemaining(s -> {
    System.out.println(s);
});
// Result
// ↓
//-- forEachRemaining --
//aaa
//bbb
//ccc
 
      NavigableSet<E> subSet (E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
Returns a view of the portion of this set whose elements range from fromElement to toElement.
final var set = new TreeSet<String>();
set.add("x");
set.add("y");
set.add("z");
System.out.println(set); // [x, y, z]
final var subSet = set.subSet("a", true, "y", true);
System.out.println(subSet); // [x, y]
set.add("a");
System.out.println(set); // [a, x, y, z]
System.out.println(subSet); // [a, x, y]
subSet.remove("x");
System.out.println(set); // [a, y, z]
System.out.println(subSet); // [a, y]
 
       final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.subSet("a", true, "c", true)); // [a, b, c]
System.out.println(set.subSet("a", true, "c", false)); // [a, b]
System.out.println(set.subSet("a", false, "c", true)); // [b, c]
System.out.println(set.subSet("a", false, "c", false)); // [b]
System.out.println(set.subSet("a", true, "a", false)); // []
System.out.println(set.subSet("a", true, "b", false)); // [a]
System.out.println(set.subSet("a", true, "c", false)); // [a, b]
System.out.println(set.subSet("a", true, "d", false)); // [a, b, c]
System.out.println(set.subSet("a", true, "d", false)); // [a, b, c]
System.out.println(set.subSet("b", true, "d", false)); // [b, c]
System.out.println(set.subSet("c", true, "d", false)); // [c]
System.out.println(set.subSet("d", true, "d", false)); // []
 
      SortedSet<E> subSet (E fromElement, E toElement)
Returns a view of the portion of this set whose elements range from fromElement, inclusive, to toElement, exclusive.
final var set = new TreeSet<String>();
set.add("x");
set.add("y");
set.add("z");
System.out.println(set); // [x, y, z]
final var subSet = set.subSet("a", "z");
System.out.println(subSet); // [x, y]
set.add("a");
System.out.println(set); // [a, x, y, z]
System.out.println(subSet); // [a, x, y]
subSet.remove("x");
System.out.println(set); // [a, y, z]
System.out.println(subSet); // [a, y]
 
       final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.subSet("a", "a")); // []
System.out.println(set.subSet("a", "b")); // [a]
System.out.println(set.subSet("a", "c")); // [a, b]
System.out.println(set.subSet("a", "d")); // [a, b, c]
System.out.println(set.subSet("a", "d")); // [a, b, c]
System.out.println(set.subSet("b", "d")); // [b, c]
System.out.println(set.subSet("c", "d")); // [c]
System.out.println(set.subSet("d", "d")); // []
 
      SortedSet<E> tailSet (E fromElement)
Returns a view of the portion of this set whose elements are greater than or equal to fromElement.
final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
final var tailSet = set.tailSet("b");
System.out.println(tailSet); // [b, c]
set.add("d");
System.out.println(set); // [a, b, c, d]
System.out.println(tailSet); // [b, c, d]
tailSet.remove("b");
System.out.println(set); // [a, c, d]
System.out.println(tailSet); // [c, d]
 
       final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.tailSet("a")); // [a, b, c]
System.out.println(set.tailSet("b")); // [b, c]
System.out.println(set.tailSet("c")); // [c]
System.out.println(set.tailSet("d")); // []
 
      NavigableSet<E> tailSet (E fromElement, boolean inclusive)
Returns a view of the portion of this set whose elements are greater than (or equal to, if inclusive is true) fromElement.
final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
final var tailSet = set.tailSet("a", false);
System.out.println(tailSet); // [b, c]
set.add("d");
System.out.println(set); // [a, b, c, d]
System.out.println(tailSet); // [b, c, d]
tailSet.remove("b");
System.out.println(set); // [a, c, d]
System.out.println(tailSet); // [c, d]
 
       final var set = new TreeSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.tailSet("a")); // [a, b, c]
System.out.println(set.tailSet("a", false)); // [b, c]
System.out.println(set.tailSet("b")); // [b, c]
System.out.println(set.tailSet("b", false)); // [c]
System.out.println(set.tailSet("c")); // [c]
System.out.println(set.tailSet("c", false)); // []
 
      Methods declared in AbstractSet
Methods declared in AbstractCollection
containsAll, retainAll, toArray, toArray, toString
Please see the link below.
Methods declared in Collection
Methods declared in Iterable
Methods declared in NavigableSet
Methods declared in Set
containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray
Please see the link below.
Methods declared in SortedSet
Related posts
- API Examples