编程知识 cdmana.com

数据结构和算法:面试高频:一文搞定所有的HashMap面试考点

1. 说说Java中常见的集合有哪些?

2. HashMap和HashTable的区别

3. HashSet和HashMap的区别

4. 谈一下HashMap的特性?

5. 谈一下HashMap的底层原理是什么?

6. 谈一下hashMap中get是如何实现的?

7. 谈一下hashMap中put是如何实现的?

8. 谈一下hashMap中什么时候需要进行扩容,扩容resize()又是如何实现的?

9. 谈一下HashMap中hash函数是怎么实现的?还有哪些hash函数的实现方式?

10. HashMap为什么不直接使用hashCode()处理后的哈希值直接作为table的下标?

10.1 为什么是两次扰动呢?

11.为什么哈希数组的默认长度是16?为什么扩容必须是2的幂?如果输入值不是2的幂比如10会怎么样?

12. 谈一下当两个对象的hashCode相等时会怎么样?

13. 如果两个键的hashcode相同,你如何获取值对象?

14. 如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办?

15. 请解释一下HashMap的参数loadFactor,它的作用是什么?

16.传统hashMap的缺点(为什么引入红黑树?)

17. 平时在使用HashMap时一般使用什么类型的元素作为Key?


1. 说说Java中常见的集合有哪些?

答:Map接口和Collection接口是所有集合框架的父接口:

版权声明
本文为[架构师训练营]所创,转载请带上原文链接,感谢
https://cbk419323.blog.csdn.net/article/details/109249770

Scroll to Top