簡體   English   中英

如何以最快的方式從兩個不同的地圖中獲取共同值?

[英]How to get common values from two different maps in the fastest possible way?

我有兩個哈希圖。 我想找到兩個地圖共有的值。 一種方法是遍歷第一個映射,獲取值並使用該值通過迭代將其與其他映射的值匹配。 但這需要很多時間。 有沒有其他方法可以最快的方式找到共同值?

firstMap.keySet().retainAll(secondMap.keySet())做你想做的事。

我仍然不確定這是真正最快的方法。 也許如果您可以控制這兩個地圖的人口,您可以創建第三個地圖,該地圖將在數據人口期間積累共享密鑰?

顯然是一個非常古老的帖子,但如果其他人正在尋找值特別必須匹配的答案,你可以做這樣的事情

map1.entrySet().retainAll(map.entrySet());

如果您使用 keySet(),您將保留自己使用的公共鍵,但如果您想匹配鍵和值,請使用 entrySet()。

沒試過這個,我不確定它是否會更快,但你可以考慮將 HashMaps 轉換為 HashSets 然后調用 Set1.retainAll(Set2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM