阿里面试实战题1----TreeSet,HashSet 区别
Posted wenbochang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里面试实战题1----TreeSet,HashSet 区别相关的知识,希望对你有一定的参考价值。
TreeSet,HashSet 区别
TreeSet
1 public class TreeSet<E> extends AbstractSet<E> 2 implements NavigableSet<E>, Cloneable, java.io.Serializable 3 4 public TreeSet() 5 this(new TreeMap<E,Object>()); 6 7
可以从代码中明显看出。TreeSet的底层其实是TreeMap。
而TreeMap是一个有序的key-value集合,它是通过红黑树实现的。
TreeMap基于红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparable 进行排序(实现其compareTo进行排序),具体取决于使用的构造方法。
TreeMap可以详细看这篇 TreeMap 还能排序?分析下源码就明白了
HashSet
1 public HashSet() 2 map = new HashMap<>(); 3
很明显,底层是HashMap实现。具体看这篇文章。基于JDK1.8的HashMap分析
TreeSet,HashSet 区别
- TreeSet底层是TreeMap,HashSet底层是HashMap
- TreeSet增加查找删除是O(lgn)。HashSet增加查找删除是O(1),最坏情况是O(n)
- TreeSet底层TreeMap可以有序,HashSet底层HashMap一定无序。
以上是关于阿里面试实战题1----TreeSet,HashSet 区别的主要内容,如果未能解决你的问题,请参考以下文章
Spring家族面试题+阿里技术官实战心得+性能优化+并发+分布式等
刚参加完阿里Java P6面试归来,6点面试经验总结!(含必考题答案)
刚参加完阿里Java P6面试归来,6点面试经验总结!(含必考题答案)
2021精选 Java后端面试题资料大全 SpringBoot,Kafka,Mysql,Redis等PDF资料,实战项目,阿里巴巴,腾讯,字节,京东,美团,滴滴,Bilibili面试经历,实用干货