Java学习笔记Java学习笔记程序员

HashSet VS TreeSet

2018-03-20  本文已影响7人  Real_man

不同之处

  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掌握起来就很轻松。

参考

上一篇下一篇

猜你喜欢

热点阅读