大战熟女丰满人妻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);
    }
}

 

全部教程
主站蜘蛛池模板: 伊人影院在线观看视频 | 国产一区欧美二区 | 国产在线激情视频 | 日本综合在线观看 | 全部免费特黄特色大片视频 | 国产精品国产亚洲精品看不卡 | 亚洲精品一区国产二区 | 亚洲精品视频在线观看视频 | 色中文在线 | 欧美观看一级毛片 | www色综合 | 国产精品亚洲欧美日韩久久 | 久久国产香蕉视频 | 久久国语| 影音先锋在线亚洲精品推荐 | 国产chinesehd在线观看 | 欧美xxxx8888视频| 国产 欧美 在线 | 老司机午夜在线视频免费观 | 全黄一级裸片视频免费区 | 自拍视频精品 | 国产xxxx69免费大片 | 红色毛片 | 狼狼色丁香久久女婷婷综合 | 毛片特级| 一级毛片不卡免费看老司机 | 青青青视频精品中文字幕 | 香蕉网伊在线中文慕大全 | 亚洲欧美香蕉在线日韩精选 | 五月天婷婷在线观看高清 | 国产一在线精品一区在线观看 | 欧美精品亚洲人成在线观看 | 亚洲欧洲一区二区三区久久 | 国产精品免费综合一区视频 | 国产精品美女在线 | 99久久日本一区二区波多野结衣 | 成人亚洲在线 | 久久青草免费免费91线频观看 | 亚洲视频在线观看视频 | 亚欧洲精品bb| 日本视频在线观看不卡高清免费 |