HashSet VS TreeSet

不同之处

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

相同之处

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

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

参考

  • https://beginnersbook.com/2014/08/difference-between-hashset-and-treeset/

你可能感兴趣的:(HashSet VS TreeSet)