HashSet vs. TreeSet vs. LinkedHashSet

HashSet vs. TreeSet vs. LinkedHashSet

种类 说明 实现 时间复杂度
HashSet 最快,无顺序 基于Hash table实现 O(1)
TreeSet 排序 基于红黑树 O(logn)
LinkedSet 维持插入顺序 含有linkedlist的hash table O(1)

TreeSet

需要注意的就是,如果是HashSet<Integer>这样的,如果用Iterator走一遍,会按照大小顺序输出,但是如果是HashSet<SomeObject>就会报runtime error.

该SomeObject必须实现Comparable接口,比如

class Dog implements Comparable<Dog>{
    int size;

    public Dog(int s) {
        size = s;
    }

    public String toString() {
        return size + "";
    }

    @Override
    public int compareTo(Dog o) {
            return size - o.size;
    }
}

results matching ""

    No results matching ""