Java菜的笔记:HashTable,HashMap,TreeMap 到底有什么不同

这应该是诸位看官经常能碰见的一个面试题了,首先我的经典回答就是 

HashTable 是 线程同步的,并不支持null的键值,而且正在被弃用,它继承于Dicionary接口,clonable接口,序列化(seriliazable)接口

HashMap 是线程不同步的,但支持null的键值,它继承于AbastractMap接口,clonable接口,seriliazable接口,一般存取都能达到常数级的时间,如果不要求元素顺序,hashMap是首选;

treemap是继承于navigateMap(navigateMap基本就是返回某key值 范围的entry数组)的,它基于红黑树实现,根据key值顺序或者是指定的Comparator 来访问;

此外,从上述三个数据结构中,我们还能往外延展到这些问题:

1.hashMap的 扩容(resize)、负载因子是怎么设计的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 4,450评论 1 14
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,391评论 11 349
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,294评论 0 16
  • 五月的西宁气温宜人,还不时的下小雨,空气清新,是出行游玩的好时节。街上行人有点稀疏,不时有外国人出现,本地居住除了...
    甜源阅读 471评论 0 0
  • Readers are primarily interested in what you have to say....
    BestDream阅读 200评论 0 0