黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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 | 国产一级一片免费播放i | 日韩一区二区超清视频 | 五月月色开心婷婷久久合 | 人人看人人做 | 可以看的黑人性较视频 | 日本三级免费看 | 国产制服丝袜视频 | 美日韩精品 | 欧美精品一区二区三区在线播放 | 久爱免费观看在线精品 | 亚洲福利二区 | 青春草视频 | 欧美黑人巨大日本人又爽又色 | 亚洲第一精品福利 | 日韩色爱| 亚洲狼人香蕉香蕉在线28 | 免费日韩一级片 | free日韩性公交车上xxhd | 欧美日韩中文在线 | 黄色片视频在线观看 | 额去鲁97在线观看视频 | 一个人看的www片免费视频中文 | 精品国产成人a在线观看 | 2022国产精品手机在线观看 | 午夜剧场在线免费观看 | 外国黄色毛片 | 五月婷婷激情网 | www视频网站 | 成年人在线免费看视频 | 久久黄色毛片 | 人人草人| 一二三四视频社区5在线高清视频 | 九九啪| 按摩理论片 | 久久久久久久99精品免费观看 | 一级毛片a | 国产精品嫩草视频永久网址 | 国产年成美女网站视频免费看 | 麻豆轻量版 | 一级在线免费视频 |