大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java面向對象
Java異常
Java數組
Java常用類
Java集合
Java IO流
Java線程
Java反射
Socket編程
Java注解開發
Java GoF設計模式
HashMap
Java內存模型
Java線性表

Java HashMap源碼分析

package com.wkcto.hashmap;

import java.util.HashMap;
/**
 * HashMap源碼分析
 * @author 北京動力節點
 *
 */
public class Test02 {

	public static void main(String[] args) {
		
		HashMap<String, Integer> hashMap = new HashMap<>();
		/*
		 *1) 在無參構造方法中, 給HashMap的loadFactor字段賦值為0.75, 這是加載因子
		 * HashMap中定義了 Node<K,V> [] table數組, 默認初始化 null
		 */
		hashMap.put("lisi", 33);
		/*
		 * 2) 在第一次執行put()方法添加<鍵,值>對時, 給table數組初始化, 默認初始化容量: 16
		 * 	給threshold字段賦值 12 , 該字段的值 等于   默認的加載因子 * 數組默認的初始化容量
		 */
		
		/*
		 * 3) put()添加數據
		 * 		(1) 先根據鍵的哈希碼(hashCode()方法的返回值)計算 鍵"lisi"的hash值: 3322017
		 * 		(2) 根據hash值,計算數組的下標, i = 1
		 * 		(3) 如果table[i] == null,  根據hash,key,value值創建一個結點保存到table[i]中
		 * 			如果table[i] !=null, 遍歷table[i]單向鏈表的每個結點, 如果有某個結點的key與當前的鍵equals()相等
		 * 				就使用新的value值33替換原來的值;  如果所有結點的key都不相同,找到鏈表的尾部, 就根據當前鍵值對生成新的結點插入到鏈表的尾部
		 * 				當單向鏈表中結點的數量 大于 8個時, 系統會把單向鏈表轉換為紅黑樹,紅黑樹是由雙向鏈表實現的
		 */
		int hash = hash("lisi");
		System.out.println( hash );
		int n = 16;					//table數組默認的初始化容量
		int i = (n - 1) & hash;		//計算數組的下標
		System.out.println( i );	//1
		
		Integer v = hashMap.get("lisi");
		/*
		 * 4) get()返回鍵對應的值
		 * 		(1) 根據鍵的hashCode()計算hash值
		 * 		(2) 如果table == null, 或者table.length > 0 不成立,  或者 table[i]元素為null,  直接返回null
		 * 		(3) 遍歷table[i]單向鏈表上每個結點, 如果有某個結點的鍵與當前的鍵equals()相等, 就返回該結點的value值, 如果沒有匹配的結點返回null
		 */
		
		/*
		 * 5) HashMap在定義時, 可以指定一個初始化容量, 需要指定為2的冪次方,如果不是2的冪次方,系統會自動調整為2的冪次方
		 * 		假設初始化容量為33~63之間的數,系統會調整為64,  為什么? 就是為了能夠快速的得出數組的下標
		 * 		數組的下標計算公式:  (n - 1) & hash   , 把hash值與n-1進行按位與操作
		 * 		當n==64時,  n-1的值是63,它的二進制為 0011 1111 , 在與hash值進行按 位與操作時, 就是把hash值的最后6位作為數組的下標
		 */
		HashMap<String, String> hashMap2 = new HashMap<>(33);
		hashMap2.put("aa", "bbb");
		
		
	}
	//根據鍵key計算它的hash值,
    static final int hash(Object key) {
        int h;
        return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
    }
}

 

全部教程
主站蜘蛛池模板: 久久精品亚洲热综合一本奇米 | 奇米影视77 | 成人性视频免费网站 | 伊人久久中文字幕久久cm | 亚洲一区二区三区高清 | 91在线视频免费播放 | 四虎影视紧急入口地址大全 | 最新国产一区二区精品久久 | 毛片大全 | 成年ssswww中国女人 | 91亚洲国产三上悠亚在线 | 欧美大香| 91av最新地址 | 九九热最新视频 | 久久中文网中文字幕 | 天天摸夜夜摸夜夜狠狠摸 | 久青草视频在线观看 | 四库国产精品成人 | 性丰满妇女free性性性 | 激情五月婷婷红人馆 | 五月天婷婷在线免费观看 | 免费99视频 | 久久99热在线观看7 久久99热这里只有精品 | 国产免费久久精品丫丫 | 亚洲午夜综合网 | 久久永久免费中文字幕 | 91久久九九精品国产综合 | 亚洲综合国产 | 亚洲精品国产啊女成拍色拍 | 免费中文字幕在线 | 99在线精品国产不卡在线观看 | 亚欧中文字幕 | 国产精品久久国产三级国电话系列 | 欧美综合色 | 天天做天天爱天天爽天天综合 | 成人在线毛片 | 日韩欧美中文字幕一区二区三区 | 中文字幕亚洲欧美一区 | 人人做天天爱夜夜爽中字 | 国产婷婷一区二区三区 | 亚洲 国产 日韩 欧美 |