`
shift8
  • 浏览: 150028 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

1、说说Hashtable和HashMap的区别

阅读更多

笔试面试题目搜集整理【每日增加】

1、说说Hashtable和HashMap的区别

 

【答案】

(1).HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
(2).Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的,线程安全的。
(3).Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。后者为Map的骨干, 其内部已经实现了Map所需要做的大部分工作, 它的子类只需要实现它的少量方法即可具有Map的多项特性。而前者内部都为抽象方法,需要它的实现类一一作自己的实现,且该类已过时。
(4).HashMap允许将null作为一个entry的key或者value,而Hashtable不允许,还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue(Returns true if this map maps one or more keys to the specified value)和containsKey(Returns true if this map contains a mapping for the specified key)。因为contains(Tests if some key maps into the specified value in this hashtable)方法容易让人引起误解。
(5)两者检测是否含有key时,hash算法不一致,HashMap内部需要将key的hash码重新计算一边再检测,而 Hashtable则直接利用key本身的hash码来做验证.

 HashMap:

int hash = (key == null) ? 0 : hash(key.hashCode());
-----
static int hash(int h) {
        h ^= (h >>> 20) ^ (h >>> 12);
        return h ^ (h >>> 7) ^ (h >>> 4);
    }

 Hashtable:

int hash = key.hashCode(); 

(6).最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

 

 

分享到:
评论

相关推荐

    面试集锦:收集JAVA的各种面试题目,以及解题思路或者答案,解题技巧

    5、HashMap和HashTable的区别,并说明其底层实现数据结构。 6、HashMap满了之后怎么扩容? 7、Linux中远程传输文件有什么方式? 8、说说Java中异常的分类。 9、TCP和UDP的区别,TCP为什么是三次握手,不是两次。...

    2013java面试题搜集

    13、谈谈Hashtable与HashMap,区别等 14、谈谈JNI, 15、还有一个问题,说说ajax的执行原理 16、java的内存回收机制,是否可以人工干预 17、描述一下你做过的你觉得印象较深刻的项目。 18、说一下集合框架有什么...

    Java基础部分 Java代码查错算法与编程html&JavaScript&ajax部分面试题

    60、HashMap和Hashtable的区别 2 61、List 和 Map 区别? 2 62、List, Set, Map是否继承自Collection接口? 2 63、List、Map、Set三个接口,存取元素时,各有什么特点? 2 64、说出ArrayList,Vector, LinkedList的存储...

    java面试大全视频版

    Java面试题11.HashMap和HashTable的区别 Java面试题12.实现一个拷贝文件的工具类要使用字节流还是字符串 Java面试题13.线程的的实现方式?怎么启动线程?怎么区分线程? Java面试题14.线程并发库和线程池的作用 Java...

    java面试宝典

    66、HashMap和Hashtable的区别 17 67、说出ArrayList,Vector, LinkedList的存储性能和特性 17 68、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 17 69、文件读写的...

    Java面试八股文十万字总结.docx

    说说Hashtable 与 HashMap 的区别** - **线程安全性**:`Hashtable`线程安全,`HashMap`不是。 - **null值和null键**:`Hashtable`不允许null键和null值,`HashMap`允许。 - **性能**:`HashMap`通常性能更好。 *...

    最新2023阿里java面试题

    5. HashMap 和 Hashtable 的区别?(集合框架) 6. HashMap 中是否任何对象都可以做为 key,用户自定义对象做为 key 有没有什么要求?(集合框架) 7. interface 和 abstract class 的区别?是否可以继承多个接口,...

    java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集.zip

    第三题 对比HashTable HashMap TreeMap有什么不同.pdf 第二题 Exception Error区别.pdf 第五题 如何保证集合是线程安全的.pdf 第八题 Java并发类库提供的线程池有哪几种 分别有什么特点.pdf 第六题 synchronized和...

    安卓java读取网页源码-questions:自问自答

    HashMap、Hashtable 和 HashSet 这三者有什么联系和区别 列举下 Java 的集合和继承关系 说下你对抽象类和接口的理解,以及两者的相同点和不同点 父类的静态方法能否被子类重写 描述下类的加载机制 说说你对 Java ...

    值得收藏的2017年Java开发岗位面试题

    11. hashtable和hashmap的区别。 Hashtable和HashMap都是基于哈希表实现的,但Hashtable是同步的,而HashMap是非同步的。 12. 异常的结构,运行时异常和非运行时异常,各举个例子。 Java异常有很多种,包括运行时...

    .net笔试题及答案

    #### 十二、`HashMap` 和 `Hashtable` 的区别 **问题**: `HashMap` 和 `Hashtable` 区别? **解答**: - `HashMap` 是 `Hashtable` 的轻量级实现。 - `HashMap` 键值可以为空 (`null`)。 - `HashMap` 非线程安全,...

    最新Java面试宝典pdf版

    60、HashMap和Hashtable的区别 44 61、List 和 Map 区别? 45 62、List, Set, Map是否继承自Collection接口? 45 63、List、Map、Set三个接口,存取元素时,各有什么特点? 45 64、说出ArrayList,Vector, LinkedList的...

    java面试宝典2012版.pdf

    60、HashMap和Hashtable的区别 61、List 和 Map 区别? 62、List, Set, Map是否继承自Collection接口? 63、List、Map、Set三个接口,存取元素时,各有什么特点? 64、说出ArrayList,Vector, LinkedList的存储性能...

    【后端】java基础(4.4)java中级基础之集合——Map

    我们主要来说说最常用的HashMap: 添加元素:put(key,value) HashMap map = new HashMap<>(); map.put("name", "大妖怪"); map.put("age", "100"); 复制代码 查询元素:get(key) HashMap m

    Java后端技术面试汇总-2019

    - **HashSet和HashMap区别**: - **HashSet**:基于HashMap实现,不允许重复元素。 - **HashMap**:键值对集合。 - **HashMap和ConcurrentHashMap的区别**: - **ConcurrentHashMap**:线程安全,使用分段锁提高...

    阿里电话面试一面总结

    ##### 问题1:HashMap和Hashtable的区别? - **线程安全性**:`Hashtable`是线程安全的,而`HashMap`不是。`Hashtable`中的所有方法都是`synchronized`的,确保了多线程环境下的安全性;而`HashMap`默认是非线程...

    java面试宝典2012

    60、HashMap和Hashtable的区别 48 61、List 和 Map 区别? 49 62、List, Set, Map是否继承自Collection接口? 49 63、List、Map、Set三个接口,存取元素时,各有什么特点? 49 64、说出ArrayList,Vector, LinkedList的...

    Java面试宝典-经典

    60、HashMap和Hashtable的区别 44 61、List 和 Map 区别? 45 62、List, Set, Map是否继承自Collection接口? 45 63、List、Map、Set三个接口,存取元素时,各有什么特点? 45 64、说出ArrayList,Vector, LinkedList的...

    java面试题大全(2012版)

    60、HashMap和Hashtable的区别 44 61、List 和 Map 区别? 45 62、List, Set, Map是否继承自Collection接口? 45 63、List、Map、Set三个接口,存取元素时,各有什么特点? 45 64、说出ArrayList,Vector, LinkedList的...

Global site tag (gtag.js) - Google Analytics