首页文章正文

HashMap 和 Hashtable 有什么区别,hashmap自动扩容怎么实现

hashcode和equals的关系 2023-12-11 19:10 396 墨鱼
hashcode和equals的关系

HashMap 和 Hashtable 有什么区别,hashmap自动扩容怎么实现

HashMap 和 Hashtable 有什么区别,hashmap自动扩容怎么实现

60道来自各大厂商的高频Java面试题:21.集合Hashtable和HashMap的区别。每个问题都是高频面试问题,而每个问题Hashtable都是线程安全的。所有方法都是同步的,这会影响其性能,是不允许的。 key和value均为空值,初始容量和增长因子固定,迭代顺序不确定;HashMap不是线程安全的,在单线程环境下比前者性能更好,允许key

2.HashMap的键和值都允许空值,但HashTable不允许。 Hashtable和HashMap的另一个区别是,HashMap的迭代器(Iterator)是快速失败迭代器,而Hashtable的枚举迭代器不是快速失败迭代器。 所以当另一个线程改变HashMap时

最显着的区别是线程安全。 哈希表是线程安全的,因此多个线程可以同时访问它,而无需额外的同步操作。 HashMap不是线程安全的,所以在多线程环境下,需要特殊的同步方法,或者线程的初始容量不同,每次扩容的大小不同:HashMap的初始容量为16,扩容为2倍+1;HashTable的初始容量为11,扩容为2倍。 计算哈希值的方法不同:HashTable使用key的hashCode(),而HashMap则重新计算

HashMap是线程不安全的,而HashTable是线程安全的。 contains方法不同。HashMap没有contains方法。Hashmap允许key和value为空值。Hashtable不允许计算具有nullkey或value的hash值。HashMap不是线程安全的。Hashtable是线程安全的,因为Hashtable内部方法基本都是通过同步修改的。 如果想保证线程安全,就使用ConcurrentHashMap! ;🌈💻效率:

⊙△⊙ 最常用的哈希表是链式哈希表,即槽+条目链表。这也是Java中哈希图的默认数据结构。 如图所示:解决哈希冲突的基本原理就是不断向桶列表中添加元素。HashMap和Hashtable有什么区别? 1.继承关系:HashMap继承于AbstractMap,Hashtable继承于DictionaryHashMap,Hashtable都实现了Map接口,可以操作键

后台-插件-广告管理-内容页尾部广告(手机)

标签: hashmap自动扩容怎么实现

发表评论

评论列表

黑豹加速器 Copyright @ 2011-2022 All Rights Reserved. 版权所有 备案号:京ICP1234567-2号