HashSet VS TreeSet

作者: Real_man | 来源:发表于2018-03-20 08:48 被阅读7次

    不同之处

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

    参考

    相关文章

      网友评论

        本文标题:HashSet VS TreeSet

        本文链接:https://www.haomeiwen.com/subject/gkqpqftx.html