map怎么獲取所有的value 怎樣獲取map里指定key對應(yīng)的value值?
怎樣獲取map里指定key對應(yīng)的value值?HM已經(jīng)是HashMap的引用。如果你知道當(dāng)前的密鑰,你可以嗯,得到(鍵)獲取值的方法。如何拿到鑰匙hm鍵集()因?yàn)槟恢滥膫€(gè)鍵是,實(shí)際上,方法是獲取一
怎樣獲取map里指定key對應(yīng)的value值?
HM已經(jīng)是HashMap的引用。如果你知道當(dāng)前的密鑰,你可以嗯,得到(鍵)獲取值的方法。如何拿到鑰匙hm鍵集()因?yàn)槟恢滥膫€(gè)鍵是,實(shí)際上,方法是獲取一組鍵。具體的例子可以結(jié)合起來看,其中有一個(gè)遍歷迭代器。集合=hm鍵集()//通過keyset方法,您可以獲得所有鍵的集合,并將它們放在一個(gè)容器集中。Iteratorit=s.iterator()//獲取一個(gè)iterator引用它。使用s.iterator方法就像使“指針”指向//set中第一個(gè)元素的位置,而(它。下一個(gè)())//如果集合中有下一個(gè){integerkey}=它。下一個(gè)()//返回當(dāng)前集合中的元素(因?yàn)榧习墟I,“指針”指向下一個(gè))系統(tǒng)輸出打印( 嗯,得到(key))//使用嗯,得到(key)方法獲取相應(yīng)的key值}
是的,同一個(gè)key會(huì)被發(fā)送到同一個(gè)reduce進(jìn)程。如果同一個(gè)鍵對應(yīng)的值級別太大,則減少的速度會(huì)非常慢。如果其他reduce處理的數(shù)據(jù)相對較少,則會(huì)出現(xiàn)數(shù)據(jù)傾斜。數(shù)據(jù)傾斜通常意味著某個(gè)分區(qū)器處理的數(shù)據(jù)量遠(yuǎn)遠(yuǎn)大于其他分區(qū)器處理的數(shù)據(jù)量,這在分布式系統(tǒng)中非常常見。一般來說,有兩個(gè)原因:(1)分割算法隨機(jī)性不夠,這是罕見的。它可以被一個(gè)相對隨機(jī)的算法代替。(2) 一個(gè)鍵對應(yīng)的數(shù)據(jù)量很大,必須將該鍵對應(yīng)的數(shù)據(jù)發(fā)送到同一個(gè)分區(qū)器進(jìn)行處理。對于第二個(gè)數(shù)據(jù)傾斜問題沒有統(tǒng)一的處理方法,這取決于具體的問題。常用的方法是在密鑰中加入一個(gè)隨機(jī)擾動(dòng),使數(shù)量大的密鑰被均勻劃分為不同的子密鑰。啟動(dòng)另一輪MapReduce對結(jié)果進(jìn)行處理,去除按鍵干擾,對結(jié)果進(jìn)行計(jì)數(shù)。因?yàn)樵趓educe處理的第一步中,key對應(yīng)的結(jié)果被大大減少(在main case中每個(gè)reduce key只輸出一條記錄),所以第二輪MapReduce中key對應(yīng)的數(shù)據(jù)非常少。此外,如果一個(gè)映射輸出同一個(gè)鍵的多個(gè)記錄,則可以添加組合器以減少映射端的數(shù)據(jù)量。主題的情況下的數(shù)據(jù)傾斜也應(yīng)該是有效的,前提是您的大量關(guān)鍵點(diǎn)在所有地圖中相對一致。否則,少量的map會(huì)運(yùn)行很長時(shí)間。