我有两个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