我有兩個TreeMap的比較兩個TreeMap中
的第一張地圖是:
Map<String, Double> m1 = new TreeMap();
,第二個是:
Map<String,double []> m2 = new TreeMap();
我要在第一張地圖的鍵搜索到第二一個,然後將第一個映射的值乘以第二個映射值的列表(對於相似的鍵)。 之後,我將從乘法中得到一個double類型的數組,然後我想將每個索引的值相加獨立。
例如:
地圖1:
Apple : 1.0
Cat:2.1
Dog:1.2
地圖2:
Apple:{2.0,0.0,4.0}
Dog {1.1,0.0,0.0}
Moon:{0.0,5.0,2.0}
結果將是:
Apple{2.0,0.0,4.0}
Dog{1.32,0.0,0.0}
然後求和:
{3.32,0.0,4.0}
這是我的嘗試,我做了兩個矩陣之間的搜索,然後我做乘法。
***我的問題我該如何做每個指數的總和以及如何檢索特殊指數的值。
for (Map.Entry<String,Double> entry : m1.entrySet()) {
List<Double> myList = new ArrayList<Double>();
if (m2.containsKey(entry.getKey())) {
//if the key is common in map1 and map2, compare the values
double y=entry.getValue();
double j[]=m2.get(entry.getKey());
for (int u=0;u<j.length;u++){
myList.add(j[u]);
}
for (int i=0;i<myList.size();i++){
System.out.println(entry.getKey()+" "+myList.get(i)*y);
}
}}
這裏的一個nit選擇是containsKey和combo的get後面只是浪費時間。只需使用get,並查看它是否爲null。 – MeBigFatGuy
@MeBigFatGuy Thx爲您的重播,但我沒有明白;(,你能解釋更多 – Geek
double j [] = m2.get(entry.getKey()); if(j!= null){ 。 .... } – MeBigFatGuy