java.util
Class TreeSet<T>
- NavigableSet, Cloneable, Collection<E>, Iterable<E>, Serializable, Set<E>
This class provides a TreeMap-backed implementation of the SortedSet
interface. The elements will be sorted according to their
natural
order, or according to the provided
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.
TreeSet() - Construct a new TreeSet whose backing TreeMap using the "natural"
ordering of keys.
|
TreeSet(SortedSet sortedSet) - Construct a new TreeSet, using the same key ordering as the supplied
SortedSet and containing all of the elements in the supplied SortedSet.
|
TreeSet(T> comparator) - Construct a new TreeSet whose backing TreeMap uses the supplied
Comparator.
|
TreeSet(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.
|
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(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.
|
boolean | contains(Object obj) - Returns true if this Set contains the supplied Object, false otherwise.
|
Iterator | descendingIterator() - Returns an iterator over the elements of this set in descending
order.
|
NavigableSet | 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 | headSet(T to) - Returns a view of this Set including all elements less than
to .
|
NavigableSet | 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 | 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 | 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 | 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 .
|
Comparator | super T> comparator() - Returns this Set's comparator.
|
SortedSet | tailSet(T from) - Returns a view of this Set including all elements greater or equal to
from .
|
NavigableSet | tailSet(T from, boolean inclusive) - Returns a view of this Set including all elements greater (or equal to,
if
inclusive is true) from .
|
T[] toArray , add , addAll , clear , contains , containsAll , isEmpty , iterator , remove , removeAll , retainAll , size , toArray , toString |
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
TreeSet
public TreeSet()
Construct a new TreeSet whose backing TreeMap using the "natural"
ordering of keys. Elements that are not mutually comparable will cause
ClassCastExceptions down the road.
TreeSet
public TreeSet(SortedSet sortedSet)
Construct a new TreeSet, using the same key ordering as the supplied
SortedSet and containing all of the elements in the supplied SortedSet.
This constructor runs in linear time.
sortedSet
- the new TreeSet will use this SortedSet's comparator
and will initialize itself with all its elements
TreeSet
public TreeSet(T> comparator)
Construct a new TreeSet whose backing TreeMap uses the supplied
Comparator. Elements that are not mutually comparable will cause
ClassCastExceptions down the road.
comparator
- the Comparator this Set will use
TreeSet
public TreeSet(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. This runs in n*log(n) time.
collection
- the new Set will be initialized with all
of the elements in this Collection
add
public 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.
obj
- the Object to be added to this Set
addAll
public boolean addAll(T> c)
Adds all of the elements in the supplied Collection to this TreeSet.
c
- The collection to add
- true if the Set is altered, false otherwise
ceiling
public 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.
e
- the element relative to the returned element.
- the least element greater than or equal
to the given element, or
null
if there is
no such element.
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.
clone
public Object clone()
Returns a shallow copy of this Set. The elements are not cloned.
- clone in interface Object
descendingIterator
public Iterator descendingIterator()
Returns an iterator over the elements of this set in descending
order. This is equivalent to calling
descendingSet().iterator()
.
- an iterator over the elements in descending order.
descendingSet
public NavigableSet descendingSet()
Returns a view of the set in reverse order. The descending set
is backed by the original set, so that changes affect both sets.
Any changes occurring to either set while an iteration is taking
place (with the exception of a
Iterator.remove()
operation)
result in undefined behaviour from the iteration. The ordering
of the descending set is the same as for a set with a
Comparator
given by
Collections.reverseOrder()
,
and calling
descendingSet()
on the descending set itself
results in a view equivalent to the original set.
- a reverse order view of the set.
first
public T first()
Returns the first (by order) element in this Set.
floor
public 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.
e
- the element relative to the returned element.
- the greatest element less than or equal
to the given element, or
null
if there is
no such element.
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.
headSet
public SortedSet headSet(T to)
Returns a view of this Set including all elements less than
to
. The returned set is backed by the original, so changes
in one appear in the other. The subset will throw an
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
headSet(T,boolean)
. This call is equivalent to
headSet(to, false)
.
to
- the (exclusive) cutoff point
- a view of the set less than the cutoff
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
headSet
public NavigableSet headSet(T to,
boolean inclusive)
Returns a view of this Set including all elements less than
(or equal to, if
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
IllegalArgumentException
for any attempt to access or add an
element beyond the specified cutoff.
to
- the cutoff pointinclusive
- true if to
should be included.
- a view of the set for the specified range.
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
higher
public 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.
e
- the element relative to the returned element.
- the least element greater than
the given element, or
null
if there is
no such element.
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.
last
public T last()
Returns the last (by order) element in this Set.
lower
public 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.
e
- the element relative to the returned element.
- the greatest element less than
the given element, or
null
if there is
no such element.
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.
pollFirst
public T pollFirst()
Removes and returns the least or lowest element in the set,
or null
if the map is empty.
- the removed first element, or
null
if the
map is empty.
pollLast
public T pollLast()
Removes and returns the greatest or highest element in the set,
or null
if the map is empty.
- the removed last element, or
null
if the
map is empty.
subSet
public SortedSet 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).
The returned set is backed by the original, so changes in one appear in
the other. The subset will throw an
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
subSet(T,boolean,T,boolean)
. This is equivalent to
calling
subSet(from,true,to,false)
.
from
- the (inclusive) low cutoff pointto
- the (exclusive) high cutoff point
- a view of the set between the cutoffs
subSet
public NavigableSet 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
.
The returned set is backed by the original, so changes in one appear in
the other. The subset will throw an
IllegalArgumentException
for any attempt to access or add an element beyond the specified cutoffs.
from
- the low cutoff pointfromInclusive
- true if from
should be included.to
- the high cutoff pointtoInclusive
- true if to
should be included.
- a view of the set for the specified range.
super T> comparator
public Comparator super T> comparator()
Returns this Set's comparator.
- the comparator, or null if the set uses natural ordering
tailSet
public SortedSet tailSet(T from)
Returns a view of this Set including all elements greater or equal to
from
. The returned set is backed by the original, so
changes in one appear in the other. The subset will throw an
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
tailSet(T,boolean)
. This is equivalent to calling
tailSet(from, true)
.
from
- the (inclusive) low cutoff point
- a view of the set above the cutoff
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
tailSet
public NavigableSet tailSet(T from,
boolean inclusive)
Returns a view of this Set including all elements greater (or equal to,
if
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
IllegalArgumentException
for any attempt
to access or add an element beyond the specified cutoff.
from
- the low cutoff point.inclusive
- true if from
should be included.
- a view of the set for the specified range.
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
TreeSet.java -- a class providing a TreeMap-backed SortedSet
Copyright (C) 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.