“Hashtable和HashMap的区别主要是前者是同步的,后者是快速失败机制保证不会出现多线程并发错误(Fast-Fail)。”,这是一个被很多文章转载过的概念,但其描述并不准确,容易引起误会。 实质上,Fast-fail与同步保护的是两种不同情况下的并发,两者不能拿来做比较。 Hashtable是同步的,在执行get,put,remove,size,clear等...
区别: (1)HashMap方法没有synchronized修饰,线程非安全,HashTable线程安全; (2)HashMap允许key和value为null,而HashTable不允许 2.底层实现:数组+链表实现 jdk8开始链表高度到8、数组长度超过64,链表转变为红黑树,元素以内部类Node节点存在 计算key的hash值,二次hash然后对数组长度取模,对应到数组下标, 如果没有...
HashMap允许键和值是NULL,而Hashtable不允许键或者值是NULL。 Hashtable是同步的,而HashMap不是。因此,HashMap更适合于单线程环境,而Hashtable适合于多线程环境。 HashMap提供了可供应用的迭代的键的集合,因此,HashMap是快速失败的。另一方面,Hashtable提供了对键的列举(Enumeration)。 一般认为Hashtable是一个遗留...
HashMap 中,null 可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为 null。 默认初始容量和扩容机制: HashTable 中的 hash 数组初始大小是 11,增加的方式是 old*2+1。HashMap 中 hash 数组的默认大小是 16,而且一定是 2 的指数。 哈希值的使用不同 : HashTable 直接使用对象的 hashCode。Hash...
(2)Hashtable:Hashtable是遗留类,很多映射的常用功能与HashMap类似,不同的是它承自Dictionary类,并且是线程安全的,任一时间只有一个线程能写Hashtable,并发性不如ConcurrentHashMap,因为ConcurrentHashMap引入了分段锁。Hashtable不建议在新代码中使用,不需要线程安全的场合可以用HashMap替换,需要线程安全的场合可以用Con...
HashMap和ArrayList默认容量分别是多少? HashMap和HashTable区别 HashMap什么时候扩容,几倍? ArrayList什么时候扩容,几倍? 讲讲Java内存模型 讲讲gc算法 01背包问题,我说了dp的方案,但面试官说使用贪心算法(性价比最高优先,我当时屈服了),但是后来发现,贪心不行。
在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。 statck:堆栈类,先进后出。 hashtable:就比hashmap多了个线程安全。 enumeration:枚举,相当于迭代器。 Copyright:采用知识共享署名4.0国际许可协议进行许可 Links:
* 1. HashMap的底层实现原理? * 2. HashMap 和 Hashtable的异同? * 3. CurrentHashMap 与 Hashtable的异同?(暂时不讲) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 2.存储结构的理解: >Map中的key:无序的、不可重复的,使用Set存储所的key ---> key所在...
目录一、Java 容器都有哪些?二、Collection 和 Collections 有什么区别?三、list与Set区别四、HashMap 和 Hashtable 有什么区别?五、说一下 HashMap 的实现原理?六、set有哪些实现类?七、说一下 HashSet 的实现原理?八、ArrayList 和 LinkedList 的区别是什么?九、如何实现数组和 List 之间的转换?十 ...