集合原始碼分析之 Map AbstractMap

2021-10-12 12:26:47 字數 1293 閱讀 8032

抽象map

//定義抽象方法entryset,交給子類實現

//這樣抽象類就可以使用此方法,做一些預設實現。但是entryset由具體的子類實現

public abstract set> entryset()

看看hashmap--entryset實現

例如://獲取集合元素個數

public int size()

public boolean isempty()

//是否包含某個鍵值

public boolean containsvalue(object value)

} else

}return false;

}//是否包含某個鍵

public boolean containskey(object key)

} else

}return false;

}//獲取某個元素

public v get(object key)

} else

}return null;

}//由子類實現

public v put(k key, v value)

//移除

public v remove(object key)

} else

}v oldvalue = null;

if (correctentry !=null)

return oldvalue;

}//將mapkey轉為set集合

public setkeyset()

public k next()

public void remove() };}

public int size()

public boolean isempty()

public void clear()

public boolean contains(object k) };}

return keyset;

}//取出所有的值

public collectionvalues()

public v next()

public void remove() };}

public int size()

public boolean isempty()

public void clear()

public boolean contains(object v) };}

return values;

}//

集合原始碼分析之 LinkedList

glinkedlist底層時基於鍊錶結構 linkedlist內部結構及屬性 public class linkedlistextends abstractsequentiallistimplements list,deque,cloneable,serializable 建構函式解析 鍊錶裡面只有...

原始碼分析集合Hashmap

public v put k key,v value final v putval int hash,k key,v value,boolean onlyifabsent,boolean evict 如果鍊錶中有相同的key直接跳出迴圈 if e.hash hash k e.key key key ...

Map集合 原始碼分析

map的實現類的結構 map 雙列資料,儲存key value對的資料 hashmap 作為map的主要實現類 執行緒不安全的,效率高 可以儲存null和key的value hashmap的底層 陣列 鍊錶 jdk7之前 陣列 鍊錶 紅黑樹 jdk8 linkedhashmap 保證在遍歷map元素...