📅  最后修改于: 2023-12-03 14:48:02.194000             🧑  作者: Mango
TreeSet
是一个基于红黑树实现的有序集合类。它提供了像HashSet
一样的操作效率,同时还支持元素的自动排序。TreeSet
实现了SortedSet
接口,并且保证集合中的元素始终按照升序排列。
public TreeSet()
public TreeSet(Collection<? extends E> c)
public TreeSet(Comparator<? super E> comparator)
public TreeSet(SortedSet<E> s)
TreeSet()
:构造一个空的TreeSet
,使用元素的自然顺序排序。TreeSet(Collection<? extends E> c)
:构造一个包含指定集合中的元素的TreeSet
,使用元素的自然顺序排序。TreeSet(Comparator<? super E> comparator)
:构造一个空的TreeSet
,使用指定的比较器排序。TreeSet(SortedSet<E> s)
:构造一个包含指定有序集合中的元素的TreeSet
,使用集合的排序。以下是TreeSet
类中最常用的一些方法:
// 添加元素
public boolean add(E e)
public boolean addAll(Collection<? extends E> c)
// 删除元素
public void clear()
public boolean remove(Object o)
public boolean removeAll(Collection<?> c)
public E pollFirst()
public E pollLast()
// 获取元素
public E first()
public E last()
public E floor(E e)
public E ceiling(E e)
public E lower(E e)
public E higher(E e)
// 集合操作
public int size()
public boolean isEmpty()
public boolean contains(Object o)
public Iterator<E> iterator()
public SortedSet<E> subSet(E fromElement, E toElement)
public SortedSet<E> headSet(E toElement)
public SortedSet<E> tailSet(E fromElement)
下面是一个简单的例子:
import java.util.TreeSet;
public class Example {
public static void main(String[] args) {
TreeSet<String> set = new TreeSet<String>();
set.add("Alice");
set.add("Bob");
set.add("Charlie");
System.out.println(set); // [Alice, Bob, Charlie]
System.out.println(set.first()); // Alice
System.out.println(set.last()); // Charlie
System.out.println(set.ceiling("David")); // null
set.remove("Charlie");
System.out.println(set); // [Alice, Bob]
}
}
输出结果:
[Alice, Bob, Charlie]
Alice
Charlie
null
[Alice, Bob]
以上代码演示了TreeSet
的一些基本用法,包括元素的添加、删除和获取,以及集合的一些操作。由于TreeSet
是有序集合,因此我们可以根据需要使用它来排序元素,或者按照某种规则进行过滤和获取子集等操作。