寫入:
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...