📜  TreeSet (1)

📅  最后修改于: 2023-12-03 14:48:02.194000             🧑  作者: Mango

TreeSet

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是有序集合,因此我们可以根据需要使用它来排序元素,或者按照某种规则进行过滤和获取子集等操作。