![](/img/trans.png)
[英]How do I put in the values (of different data types) from two HashMaps with the same keys into a new third HashMap?
[英]How do I combine two HashMaps in java into one new HashMap with divided values?
我正在嘗試結合兩個 HashMap 的數據來制作第三個 HashMap。 兩者的密鑰在第三個 HashMap 上仍然相同。
但是,PeopleAndTotal 和 PeopleAndDivider HashMap 中的值需要除以,以便商可以在第三個 HashMap 旁邊與其各自的鍵一起出現。
(還值得注意的是,前兩個地圖中的鍵是相同的。)
以下是前兩張地圖的內容:
{p1=20, p2=40, p3=9, p4=18, p5=20, p6=40}
{p1=2, p2=2, p3=3, p4=3, p5=4, p6=4}
我需要制作第三個 HashMap 打印出來是這樣的:
{p1=10, p2=20, p3=3, p4=6, p5=5, p6=10}
到目前為止,代碼如下所示:
import java.util.HashMap;
public class HashmapTest2 {
public static void main(String[] args) {
HashMap<String, Integer> PeopleAndTotal = new HashMap<String, Integer>();
HashMap<String, Integer> PeopleAndDivider = new HashMap<String, Integer>();
PeopleAndTotal.put("p1", 20);
PeopleAndTotal.put("p2", 40);
PeopleAndTotal.put("p3", 9);
PeopleAndTotal.put("p4", 18);
PeopleAndTotal.put("p5", 20);
PeopleAndTotal.put("p6", 40);
PeopleAndDivider.put("p1", 2);
PeopleAndDivider.put("p2", 2);
PeopleAndDivider.put("p3", 3);
PeopleAndDivider.put("p4", 3);
PeopleAndDivider.put("p5", 4);
PeopleAndDivider.put("p6", 4);
System.out.println(PeopleAndTotal);
System.out.println(PeopleAndDivider);
HashMap<String, Integer> CombineMap = new HashMap<String, Integer>();
//Insert method here, How would I go about this?
System.out.println("Expected Output for CombineMap should be");
System.out.println("{p1=10, p2=20, p3=3, p4=6, p5=5, p6=10}");
System.out.println(CombineMap);
}
}
go 關於這個的最佳方法是什么?
您必須遍歷 PeopleAndTotal 並訪問另一個 map PeopleAndDivider 才能獲得相同鍵的分隔符值。 然后將結果划分並放在同一key下的CombineMap中。
for (Map.Entry<String, Integer> entry : PeopleAndTotal.entrySet()) {
Integer total = entry.getValue();
Integer divider = PeopleAndDivider.get(entry.getKey());
CombineMap.put(entry.getKey(), total / divider)
}
這是一個襯里:
Map<String, Integer> CombineMap = PeopleAndTotal.entrySet().stream()
.collect(toMap(Map.Entry::getKey, e -> e.getValue() / PeopleAndDivider.get(e.getKey())));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.