阿里面试90%以上会问到的数据结构;HashMap
BAT面试必问; 关于hashmap,你知道多少?你知道hashmap的工作原理吗? 1.该问题很有深度 2.能答出多少决定岗位和薪资. 3.问题的方式多种多样 一.首先我们了解下HashMap是什么 HashMap是Java常用的用来储存键值对的数据结构,它是线程不安全的,可以储存null键值,这些大家经常用,也都知道,接下来根据源码分析一下HashMap的实现。 1、实现原理 HashMap采用数组散列+链表的方式来储存键值对,键值对的对象实现如下: static class Entry<K,V> implements Map.Entry<K,V> { final K key; V value; Entry<K,V> next; final int hash; …… } 通过一个Entry的数组table就实现了多个对象的保存,使用哈希值和键值解决了在插入和查找时的冲突。 2、put方法,写入键值对 public V put(K key, V value){ //如果 key 为 null,调用 putForNullKey 方法写入null键的值...

