Java中的数据结构 3.TreeSet

TreeSet使用上总体上与HashSet相同,不同的是TreeSet会对元素进行排序,向TreeSet中添加元素花的时间比HashSet稍长,但TreeSet添加/搜索/修改/删除元素的复杂度是稳定的log(n)

TreeSet使用示例

public static void main(String[] args) {
    TreeSet<String> sorter = new TreeSet<>();
    sorter.add("Bob");
    sorter.add("Amy");
    sorter.add("David");
    sorter.add("Carl");
    
    for (String s : sorter) {
        System.out.println(s);
    }
}

该程序会输出

Amy
Bob
Carl
David

TreeSet由TreeMap实现

向TreeSet中添加的元素应该实现Comparable接口

如果要添加的元素没有实现该接口或者想用其他方式比较,可以在构造TreeSet时提供一个实现了Comparator的对象

public interface Comparator<T>
{
   int compare(T a, T b);
}

TreeSet实现了SortedSet(需要在构造时传入比较器才能真正使用)与NavigableSet接口

发表评论

邮箱地址不会被公开。