vue取通过key取value_如何通过获取map中的key来获得与key对应的value值,进行运算...
展開全部
獲取map的key和value的方法分為以下62616964757a686964616fe4b893e5b19e31333366306439兩種形式:
1、map.keySet():先獲取map的key,然后根據(jù)key獲取對應(yīng)的value;
2、map.entrySet():同時查詢map的key和value,只需要查詢一次;
注意:當(dāng)map的value值相等時,根據(jù)key值進(jìn)行排序
很多人都推薦使用entrySet,認(rèn)為其比keySet的效率高很多。理由是:entrySet方法一次拿到所有key和value的集合;而keySet拿到的只是key的集合,針對每個key,都要去Map中額外查找一次value,從而降低了總體效率。
兩種方法對比測試如下:
HashMap測試數(shù)據(jù):
TreeMap測試數(shù)據(jù):
擴(kuò)展資料:
map.keySet()和map.EntrySet()的比較:
一、如果使用HashMap
1、同時遍歷key和value時,keySet與entrySet方法的性能差異取決于key的具體情況,如復(fù)雜度(復(fù)雜對象)、離散度、沖突率等。換言之,取決于HashMap查找value的開銷。
entrySet一次性取出所有key和value的操作是有性能開銷的,當(dāng)這個損失小于HashMap查找value的開銷時,entrySet的性能優(yōu)勢就會體現(xiàn)出來。
在比測試中,當(dāng)key是最簡單的數(shù)值字符串時,keySet可能反而會更高效,耗時比entrySet少10%。總體來說還是推薦使用entrySet。
因為當(dāng)key很簡單時,其性能或許會略低于keySet,但卻是可控的;而隨著key的復(fù)雜化,entrySet的優(yōu)勢將會明顯體現(xiàn)出來。當(dāng)然,我們可以根據(jù)實際情況進(jìn)行選擇
2、只遍歷key時,keySet方法更為合適,因為entrySet將無用的value也給取出來了,浪費了性能和空間。在上述測試結(jié)果中,keySet比entrySet方法耗時少23%。
3、只遍歷value時,使用vlaues方法是最佳選擇,entrySet會略好于keySet方法。
二、如果使用TreeMap
1、同時遍歷key和value時,與HashMap不同,entrySet的性能遠(yuǎn)遠(yuǎn)高于keySet。這是由TreeMap的查詢效率決定的,也就是說,TreeMap查找value的開銷較大,明顯高于entrySet一次性取出所有key和value的開銷。因此,遍歷TreeMap時強(qiáng)烈推薦使用entrySet方法。
2、只遍歷key時,keySet方法更為合適,因為entrySet將無用的value也給取出來了,浪費了性能和空間。在上述測試結(jié)果中,keySet比entrySet方法耗時少24%。
3、只遍歷value時,使用vlaues方法是最佳選擇,entrySet也明顯優(yōu)于keySet方法。
參考資料:
總結(jié)
以上是生活随笔為你收集整理的vue取通过key取value_如何通过获取map中的key来获得与key对应的value值,进行运算...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 域内计算机如何同步网络t时间,网络节点的
- 下一篇: html5倒计时秒杀怎么做,vue 设