突然想解剖HashMap实现原理,Map链表的作者源码如何实现?也可以丰富一下自己的编程思想,也想让读者看见如何观看别人源码的思路和方法。所以心血来潮的我,就来解析HashMap底层原理!
送给读者的话:一个合格的程序员一定要学会观看别人代码。这样子自己的开发也会很多思路和方法。希望国内软件开发越来越好。
首先看类
public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable
{
.....
}
可以看出类继承了AbstractMap抽象泛型类,实现了Map泛型接口和Cloneable、Serializable接口
AbstractMap抽象泛型类
public abstract class AbstractMap<K,V> implements Map<K,V> {
....
}
看出AbstractMap抽象类实现了Map泛型接口
注意:如果抽象类继承了泛型接口,要么改写抽象类为抽象泛型类,要么删除泛型接口中的泛型定义
接着看Map泛型接口
import java.util.Collection;
import java.util.Set;
public interface Map<K,V> {
int size();
boolean isEmpty();
boolean containsKey(Object key);
boolean containsValue(Object value);
V get(Object key);
V put(K key, V value);
V remove(Object key);
void put