【发布时间】:2013-12-04 18:07:52
【问题描述】:
大家好,这是问题
我有类似的东西
private Map<String, Map<String, Double>> map1 = new HashMap<String, Map<String,Double>>();
private Map<String, Map<String, Double>> map2= new HashMap<String, Map<String,Double>>();
private Map<String, Map<String, Double>> map3= new HashMap<String, Map<String,Double>>();
Map1、Map2 和 Map3 属于同一类型,但根据因素,这些地图中的数据将被聚合。
然后我有这段代码可以根据区分因素将数据放在每个地图上
private void doSomething(data){
if(factor1){
map1.put(data);
functionForData(map1);
}
else if(factor2){
map2.put(data);
functionForData(map2);
}
else if(factor3){
map3.put(data);
functionForData(map3);
}
}
我认为这不是处理数据和确定哪个地图将存储信息的更好方法,特别是因为我必须重复 functionForData() 的所有代码,只更改我需要的地图。 我该如何改进呢? 非常感谢!!
【问题讨论】:
-
将正确的映射分配给 if-else 块中的引用。然后,在您确定了正确的地图参考后,调用
put和functionForData一次,并提供参考。 -
functionForData 是所有地图通用的吗?究竟是什么因素? 3张地图的目的是什么?会是什么数据?
-
我收到了包含混合值的列表,我有 3 个地图用于将它们分组到具有共同属性的子组中。
标签: java data-structures hashmap