34HashSet和TreeSet有什么区别?

290 阅读1分钟

笔记

hashset:

  1. 哈希表实现
  2. 无序
  3. 插入块,查询慢

treeset:

  1. 底层红黑树实现
  2. 有序,插入的对象需要实现Comparable接口,或者指定Comparator作为比较策略
  3. 插入慢,查询快

原文

Hashset 的底层是由哈希表实现的,Treeset 底层是由红黑树实现的。如果需要在Treeset 中插入对象,需要实现Comparable 接口,为其指定比较策略。

HashSet是由一个hash表来实现的,因此,它的元素是无序的。add(),remove(),contains()方法的时间复杂度是O(1)。
另一方面,TreeSet是由一个树形的结构来实现的,它里面的元素是有序的。因此,add(),remove(),contains()方法的时间复杂度是O(logn)。

www.nowcoder.com/questionTer…