java.util
public class TreeSet<T> extends AbstractSet<T> implements NavigableSet<T>, Cloneable, Serializable
Comparator
.Most operations are O(log n), but there is so much overhead that this makes small sets expensive. Note that the ordering must be consistent with equals to correctly implement the Set interface. If this condition is violated, the set is still well-behaved, but you may have suprising results when comparing it to other sets.
This implementation is not synchronized. If you need to share this between
multiple threads, do something like:
SortedSet s
= Collections.synchronizedSortedSet(new TreeSet(...));
The iterators are fail-fast, meaning that any structural
modification, except for remove()
called on the iterator
itself, cause the iterator to throw a
ConcurrentModificationException
rather than exhibit
non-deterministic behavior.
Since: 1.2
See Also: Collection Set HashSet LinkedHashSet Comparable Comparator synchronizedSortedSet TreeMap
UNKNOWN: updated to 1.6
Constructor Summary | |
---|---|
TreeSet()
Construct a new TreeSet whose backing TreeMap using the "natural"
ordering of keys. | |
TreeSet(Comparator<? super T> comparator)
Construct a new TreeSet whose backing TreeMap uses the supplied
Comparator. | |
TreeSet(Collection<? extends T> collection)
Construct a new TreeSet whose backing TreeMap uses the "natural"
orering of the keys and which contains all of the elements in the
supplied Collection. | |
TreeSet(SortedSet<T> sortedSet)
Construct a new TreeSet, using the same key ordering as the supplied
SortedSet and containing all of the elements in the supplied SortedSet.
|
Method Summary | |
---|---|
boolean | add(T obj)
Adds the spplied Object to the Set if it is not already in the Set;
returns true if the element is added, false otherwise.
|
boolean | addAll(Collection<? extends T> c)
Adds all of the elements in the supplied Collection to this TreeSet.
|
T | ceiling(T e)
Returns the least or lowest element in the set greater than or
equal to the given element, or null if there is
no such element.
|
void | clear()
Removes all elements in this Set. |
Object | clone()
Returns a shallow copy of this Set. |
Comparator<? super T> | comparator()
Returns this Set's comparator.
|
boolean | contains(Object obj)
Returns true if this Set contains the supplied Object, false otherwise.
|
Iterator<T> | descendingIterator()
Returns an iterator over the elements of this set in descending
order. |
NavigableSet<T> | descendingSet()
Returns a view of the set in reverse order. |
T | first()
Returns the first (by order) element in this Set.
|
T | floor(T e)
Returns the greatest or highest element in the set less than or
equal to the given element, or null if there is
no such element.
|
SortedSet<T> | headSet(T to)
Returns a view of this Set including all elements less than
to . |
NavigableSet<T> | headSet(T to, boolean inclusive)
Returns a view of this Set including all elements less than
(or equal to, if inclusive is true) to .
|
T | higher(T e)
Returns the least or lowest element in the set strictly greater
than the given element, or null if there is
no such element.
|
boolean | isEmpty()
Returns true if this Set has size 0, false otherwise.
|
Iterator<T> | iterator()
Returns in Iterator over the elements in this TreeSet, which traverses
in ascending order.
|
T | last()
Returns the last (by order) element in this Set.
|
T | lower(T e)
Returns the greatest or highest element in the set strictly less
than the given element, or null if there is
no such element.
|
T | pollFirst()
Removes and returns the least or lowest element in the set,
or null if the map is empty.
|
T | pollLast()
Removes and returns the greatest or highest element in the set,
or null if the map is empty.
|
boolean | remove(Object obj)
If the supplied Object is in this Set, it is removed, and true is
returned; otherwise, false is returned.
|
int | size()
Returns the number of elements in this Set
|
SortedSet<T> | subSet(T from, T to)
Returns a view of this Set including all elements greater or equal to
from and less than to (a half-open interval).
|
NavigableSet<T> | subSet(T from, boolean fromInclusive, T to, boolean toInclusive)
Returns a view of this Set including all elements greater than (or equal to,
if fromInclusive is true from and less than
(or equal to, if toInclusive is true) to .
|
SortedSet<T> | tailSet(T from)
Returns a view of this Set including all elements greater or equal to
from . |
NavigableSet<T> | tailSet(T from, boolean inclusive)
Returns a view of this Set including all elements greater (or equal to,
if inclusive is true) from . |
See Also: Comparable
Parameters: comparator the Comparator this Set will use
Parameters: collection the new Set will be initialized with all of the elements in this Collection
Throws: ClassCastException if the elements of the collection are not comparable NullPointerException if the collection is null
See Also: Comparable
Parameters: sortedSet the new TreeSet will use this SortedSet's comparator and will initialize itself with all its elements
Throws: NullPointerException if sortedSet is null
Parameters: obj the Object to be added to this Set
Throws: ClassCastException if the element cannot be compared with objects already in the set
Parameters: c The collection to add
Returns: true if the Set is altered, false otherwise
Throws: NullPointerException if c is null ClassCastException if an element in c cannot be compared with objects already in the set
null
if there is
no such element.
Parameters: e the element relative to the returned element.
Returns: the least element greater than or equal
to the given element, or null
if there is
no such element.
Throws: ClassCastException if the specified element can not
be compared with those in the map. NullPointerException if the element is null
and this set either uses natural
ordering or a comparator that does
not permit null elements.
Since: 1.6
Returns: the cloned set
Returns: the comparator, or null if the set uses natural ordering
Parameters: obj the Object to check for
Returns: true if it is in the set
Throws: ClassCastException if obj cannot be compared with objects already in the set
descendingSet().iterator()
.
Returns: an iterator over the elements in descending order.
Since: 1.6
Returns: a reverse order view of the set.
Since: 1.6
Returns: the first element
Throws: NoSuchElementException if the set is empty
null
if there is
no such element.
Parameters: e the element relative to the returned element.
Returns: the greatest element less than or equal
to the given element, or null
if there is
no such element.
Throws: ClassCastException if the specified element can not
be compared with those in the map. NullPointerException if the element is null
and this set either uses natural
ordering or a comparator that does
not permit null elements.
Since: 1.6
to
. The returned set is backed by the original, so changes
in one appear in the other. The subset will throw an
{@link IllegalArgumentException} for any attempt to access or add an
element beyond the specified cutoff. The returned set does not include
the endpoint; if you want inclusion, pass the successor element or
call {@link #headSet(T,boolean)}. This call is equivalent to
headSet(to, false)
.
Parameters: to the (exclusive) cutoff point
Returns: a view of the set less than the cutoff
Throws: ClassCastException if to
is not compatible with
the comparator (or is not Comparable, for natural ordering) NullPointerException if to is null, but the comparator does not
tolerate null elements
inclusive
is true) to
.
The returned set is backed by the original, so changes
in one appear in the other. The subset will throw an
{@link IllegalArgumentException} for any attempt to access or add an
element beyond the specified cutoff.
Parameters: to the cutoff point inclusive true if to
should be included.
Returns: a view of the set for the specified range.
Throws: ClassCastException if to
is not compatible with
the comparator (or is not Comparable, for natural ordering) NullPointerException if to is null, but the comparator does not
tolerate null elements
null
if there is
no such element.
Parameters: e the element relative to the returned element.
Returns: the least element greater than
the given element, or null
if there is
no such element.
Throws: ClassCastException if the specified element can not
be compared with those in the map. NullPointerException if the element is null
and this set either uses natural
ordering or a comparator that does
not permit null elements.
Since: 1.6
Returns: true if the set is empty
Returns: an iterator
Returns: the last element
Throws: NoSuchElementException if the set is empty
null
if there is
no such element.
Parameters: e the element relative to the returned element.
Returns: the greatest element less than
the given element, or null
if there is
no such element.
Throws: ClassCastException if the specified element can not
be compared with those in the map. NullPointerException if the element is null
and this set either uses natural
ordering or a comparator that does
not permit null elements.
Since: 1.6
null
if the map is empty.
Returns: the removed first element, or null
if the
map is empty.
Since: 1.6
null
if the map is empty.
Returns: the removed last element, or null
if the
map is empty.
Since: 1.6
Parameters: obj the Object to remove from this Set
Returns: true if the set was modified
Throws: ClassCastException if obj cannot be compared to set elements
Returns: the set size
from
and less than to
(a half-open interval).
The returned set is backed by the original, so changes in one appear in
the other. The subset will throw an {@link IllegalArgumentException}
for any attempt to access or add an element beyond the specified cutoffs.
The returned set includes the low endpoint but not the high; if you want
to reverse this behavior on either end, pass in the successor element
or call {@link #subSet(T,boolean,T,boolean)}. This is equivalent to
calling subSet(from,true,to,false)
.
Parameters: from the (inclusive) low cutoff point to the (exclusive) high cutoff point
Returns: a view of the set between the cutoffs
Throws: ClassCastException if either cutoff is not compatible with the comparator (or is not Comparable, for natural ordering) NullPointerException if from or to is null, but the comparator does not tolerate null elements IllegalArgumentException if from is greater than to
fromInclusive
is true from
and less than
(or equal to, if toInclusive
is true) to
.
The returned set is backed by the original, so changes in one appear in
the other. The subset will throw an {@link IllegalArgumentException}
for any attempt to access or add an element beyond the specified cutoffs.
Parameters: from the low cutoff point fromInclusive true if from
should be included. to the high cutoff point toInclusive true if to
should be included.
Returns: a view of the set for the specified range.
Throws: ClassCastException if either cutoff is not compatible with the comparator (or is not Comparable, for natural ordering) NullPointerException if from or to is null, but the comparator does not tolerate null elements IllegalArgumentException if from is greater than to
from
. The returned set is backed by the original, so
changes in one appear in the other. The subset will throw an
{@link IllegalArgumentException} for any attempt to access or add an
element beyond the specified cutoff. The returned set includes the
endpoint; if you want to exclude it, pass in the successor element
or call {@link #tailSet(T,boolean)}. This is equivalent to calling
tailSet(from, true)
.
Parameters: from the (inclusive) low cutoff point
Returns: a view of the set above the cutoff
Throws: ClassCastException if from
is not compatible with
the comparator (or is not Comparable, for natural ordering) NullPointerException if from is null, but the comparator
does not tolerate null elements
inclusive
is true) from
. The returned set
is backed by the original, so changes in one appear in the other. The
subset will throw an {@link IllegalArgumentException} for any attempt
to access or add an element beyond the specified cutoff.
Parameters: from the low cutoff point. inclusive true if from
should be included.
Returns: a view of the set for the specified range.
Throws: ClassCastException if from
is not compatible with
the comparator (or is not Comparable, for natural ordering) NullPointerException if from is null, but the comparator
does not tolerate null elements