2016-08-08 9 views
-2

同じキー名で同じ長さの2つのリンクされたハッシュマップがありますが、値は異なります。例えば:異なるリンクされたハッシュマップから同じキー名で2つの値を掛ける方法は?

Map<String, Double> map1= new LinkedHashMap<String, Double>(); 

map1.put("A", 2.3);  
map1.put("B", 6.1); 
map1.put("C", 5.3); 

Map<String, Double> map2= new LinkedHashMap<String, Double>(); 

map2.put("A", 10.3);  
map2.put("B", 60.1); 
map2.put("C", 0.3); 

私はMAP2で同じ対応するキーとMAP1からそれぞれの値を乗算する方法を(2.3 * 10.3、B 6.1 * 60.1などなど)と新しいのLinkedHashMapに結果を保存しますか?

私は運がないとこれを試しました。ここで

Map<String, Double> map3= new LinkedHashMap<String, Double>(); 
       double valueMap1 = map1.get(key); 
       double valueMap2 = map2.get(key1); 

      for(String key : map1.keySet()) 
       for(String key1 : map2.keySet()){ 
      if(map1.containsKey(key1)){ 


       double newValue =valueMap1* valueMap2; 


       map3.put(key1, newValue); 
     } 
     } 
+0

あなたの問題を解決する必要がありますループで、何をしようとしたのですか? –

+0

解決策は非常に簡単です。何を試したのか、どこで失敗したのか説明してください。最初に試したことがない場合は試してみてください。うまくいかない場合は –

+0

2つのリンクされたハッシュマップのキーの順序は同じですか?次にソートされたマップの値をリストとして取得し、必要な乗算を行い、値を新しいリストに保存してから、キーと値を組み合わせることができます。 – lenach87

答えて

1

は素手で

Map<String, Double> map3= new LinkedHashMap<String, Double>(); 
for(String key : map1.keySet()) { 
    if(map2.containsKey(key)) { 
     map3.put(key, map1.get(key) * map2.get(key); 
    } 
} 
関連する問題