HashSet VS TreeSet

简介: 不同之处像add,remove,contains,size等操作,HashSet比TreeSet有更好的性能。HashSet的时间复杂度为O(1),TreeSet的时间复杂度为log(n)。

不同之处

  1. 像add,remove,contains,size等操作,HashSet比TreeSet有更好的性能。HashSet的时间复杂度为O(1),TreeSet的时间复杂度为log(n)。
  2. HashSet是无序的,TreeSet是有序的,默认为增序。

相同之处

  1. 都没有重复的元素
  2. 如果你想要一个有序集合,最好先把元素添加到HashSet中,然后把它转换为TreeSet。而不是创建TreeSet然后往里面添加元素。
 Set<String> tset = new TreeSet<String>(hset);
  1. 它们都是非线程安全的,如果需要同步,需要做一些额外的操作。

HashSet内部主要使用HashMap实现,HashMap不允许有相同的key存在。HashSet的方法很少,而且都很简单,可以看一下。TreeSet内部主要依靠TreeMap来实现,如果对Map有深入研究的话,那么HashSet和TreeSet掌握起来就很轻松。

参考

相关文章
|
4月前
|
存储
HashSet的使用
HashSet的使用
43 2
|
5月前
|
存储
HashSet和LinkedHashSet使用
HashSet和LinkedHashSet使用
|
7月前
|
容器
HashSet
HashSet
48 0
|
存储 对象存储
HashSet、TreeSet、LinkedHashSet的区别
HashSet、TreeSet、LinkedHashSet的区别
99 0
|
存储 算法
TreeSet 和 HashSet 的区别
TreeSet 和 HashSet 的区别
63 0
|
存储 安全
HashSet和HashMap
HashSet和HashMap
126 0
|
存储 安全 API
TreeSet详解
TreeSet详解
183 0
TreeSet详解
|
存储 安全 容器
HashSet详解
HashSet详解
182 0
HashSet详解
一文带你了解 TreeMap ,LinkedHashMap 的主要特点
必备知识点 一. Comparable , Comparator 这两个有什么不同? 可以看到一个是 java.lang 包的,一个是 util 包的。 代码如下,很明显, Comparable 属于 内部比较器, 而 Comparator 属于 外部比较器 。 外部比较器的好处 是我们可以有很多这种比较器,可以按排序的要求去选择 ,便于解耦。 而内部比较器也比较简单,只要实现了该 Comparable 接口就可以进行比较了。 class B implements Comparator<Integer>{ @Override public int com
241 0
|
存储
TreeSet相关问题
TreeSet相关问题
116 0