树集是一个有序集合(sorted collection),可以以任意顺序将元素插入集合,在对集合进行遍历时,值将自动地按照排序后的顺序出现。例如,插入3个元素,然后访问添加的所有元素。
var sorter = new TreeSet<String>();
sorter.add("Bob");
sorter.add("Amy");
sorter.add("Carl");
for(String s : sorter) System.out.println(s);
上述程序中值将按照有序顺序打印:Amy Bob Carl(非插入时顺序),排序是用一个树结构完成(当前采用的是红黑树),每次将一个元素添加到树中时,都会将其放置到正确的排序位置上,因此迭代器总是以有序的顺序访问这个元素。
附录:涉及到的API
1、java.util.TreeSet<E> 1.2
TreeSet()
TreeSet(Comparator<? super E> comparator) --- 构造一个空树集
TreeSet(Collection<? extends E> elements)
TreeSet(SortedSet<E> s) --- 构造一个树集,并增加一个集合或有序集中的所有元素
2、java.util.SortedSet<E> 1.2
Comparator<? super E> comparator() --- 返回用于对元素进行排序的比较器。如果元素用Compatable接口的comparaTo方法进行比较则返回null
E first()
E last() --- 返回有序集中的最小元素或最大元素
3、java.util.NavigableSet<E> 6
E higher(E value)
E lower(E value) --- 返回大于value的最小元素或小于value的最大元素,如果没有则返回null
E ceiling(E value)
E floor(E value) --- 返回大于等于value的最小元素或小于等于value的最大元素,如果没有这样的元素则返回null
E pollFirst()
E pollLast() --- 删除并返回这个集中的最大元素或最小元素,这个集为空则返回null
Iterator<E> descendingIterator() --- 返回一个按照降序遍历集中元素的迭代器