【发布时间】:2016-11-08 16:24:19
【问题描述】:
我有两张不同大小的地图。例如
Map<String, Double> qm3 = new HashMap<>();
Map<String, Double> m = new HashMap<>();
qm3有如下图{d=0.2, e=0.3}
m有如下图{e=0.3, c=0.4, d=0.5}
现在,我想比较这两张地图的键。如果“qm3”的第一个键与“m”的任何键匹配,那么我想将 qm3 的值存储在列表 qvec 中,并将 m 的值存储在另一个列表 dvec 。等等
我想将 qm3 ( d, e) 的每个键与 m (e, c ,d ) 的每个键匹配。 例如,d 将与 e、c、d 进行比较。 如果找到匹配项,我会将 d 的值放在两个列表中。
qvec 将存储来自 qm3 的 d 的值 并且 dvec 将存储来自 m 的 d 的值
到目前为止我的代码。
for(Map.Entry<String, Double> qe : qm3.entrySet()){
for(Map.Entry<String, Double> de : m3.entrySet()){
System.out.println(qe.getKey());
if(qe.getKey().equals(de.getKey())){
//System.out.println(qe.getKey());
qvec.add(qe.getValue());
dvec.add(de.getValue());
}
else {
qvec.add(qe.getValue());
dvec.add(0.0);
}
}
}
【问题讨论】:
-
您是否知道
Maps 有一个lookup function 来获取值,如果存在映射,则无需遍历整个映射? -
你为什么不用get?这段代码有点难以理解,
qvec是什么? -
哦不,我不熟悉这些东西,如何使用或者那个查找功能是什么?
-
哦,Qvec和dvec是两个列表
-
否 :( 我想将 qm3 ( d, e) 的每个键匹配到 m (e, c ,d ) 的每个键。例如 ,d 将与 e, c, d 进行比较. 如果找到匹配项,我会将 d 的值放在两个列表中。qvec 将存储 qm3 中 d 的值,dvec 将存储 m 中 d 的值