總結 HashMap的寫入和讀取步驟分

2021-07-23 20:09:17 字數 1062 閱讀 1872

寫入:

put(k key, v value):

(1)、判斷key

是否為空:為空,把value

存入table[0]

的位置;不為空,轉向(2

) (2 )、把key

值hash

,得到此hash

結果在map

中的位置i (3

)、檢視當前map

中位置i

是否已經存在物件:存在,轉向(4

);不存在,轉向(5

) (4 )、遍歷這些已經存在的物件,看是否存在相同的key

值:存在,用value

替換oldvalue

返回oldvalue

;不存在,轉向(5

) (5 )、判斷當前size

大小是否超過負載因子定義的容量:超過,建立兩倍於原來大小的空間,並重新hash

,將原來的物件放到新的空間;沒超過,轉向(6

) (6 )、

entry

e =table

[bucketindex];

table

[bucketindex] =

newentry

<>(hash, key, value, e);

如果之前i

位置之前不存在物件,在entry

的next

指向null

;如果之前存在物件,entry

的next

指向之前的entry

; (7 )、size+1

讀取:get(object key):

(1)、判斷key

是否為空:為空,取出table[0]

的值;不為空,轉向(2

) (2 )、判斷size

是否為0

:為0,返回空;不為0

,轉向(3

) (3 )、把key

值hash

,得到位置i (4

)、遍歷位置i

的物件,找出key

值相同的物件entry,

返回entry

的value

c 檔案讀取和寫入的方式總結

1.1檔案寫入部分 string path c test.txt if file.exists path 如果檔案存在,那麼刪除檔案 file.delete path fs.write bs,0,bs.length 這裡的bs是乙個陣列byte fs.close 1.2檔案讀取部分 string s...

FileStream的讀取和寫入

使用 filestream 類對檔案系統上的檔案進行讀取 寫入 開啟和關閉操作,並對其他與檔案相關的作業系統控制代碼進行操作,如管道 標準輸入和標準輸出。讀寫操作可以指定為同步或非同步操作。filestream 對輸入輸出進行緩衝,從而提高效能。先看 後面講解 using system using ...

HDFS的讀取和寫入

1 客戶端將待寫入的檔案資訊上傳給namenode 2 namenode檢測要上傳的檔案 3 將是否可上傳的資訊返回給客戶端 4 client將待上傳的檔案進行切塊,然後上傳blk1 5 namenode根據集群中現存的快資訊和機架感知,選出可上傳的主機 假設時datanode1和datanode2...