Java 内部Hashmap值被新值覆盖
在Java中,我希望我的哈希映射具有如下结构Java 内部Hashmap值被新值覆盖,java,hashmap,Java,Hashmap,在Java中,我希望我的哈希映射具有如下结构 {12/10/2015 = {8977867 = 4 }} {13/10/2015 = {8977867 = 3 }} 目前我的散列图是 {12/10/2015 = {8977867 = 3 }} {13/10/2015 = {8977867 = 3 }} Map<String, Object>trial=new HashMap<String,Object>(); HashMap<Date, Map<Strin
{12/10/2015 = {8977867 = 4 }}
{13/10/2015 = {8977867 = 3 }}
目前我的散列图是
{12/10/2015 = {8977867 = 3 }}
{13/10/2015 = {8977867 = 3 }}
Map<String, Object>trial=new HashMap<String,Object>();
HashMap<Date, Map<String, Object>> map1 = new HashMap<>();
String cuurentDate;
for(event = some condition) {
String key = event.getKey;
Integer value= event.getValue;
trial.put(key,value)
}
map1.put(currentDate,trial)
以上是代码。我将遍历日期值
内部贴图值将更新为新值,或被覆盖。但是对于每个日期,我希望内部映射保存实际的日期值
我是否必须在每天迭代一次后删除内部映射,或者是否有其他方法来执行此操作?问题可能出在您未包含的代码中。每次在map1映射中放置内部HashMap实例时,都应该创建一个新的HashMap,而不是重用以前的HashMap
HashMap<Date, Map<String, Object>> map1 = new HashMap<>();
Map<String, Object> trial=new HashMap<String,Object>();
String currentDate = ...;
for(...){
...
trial.put(key,value);
}
map1.put(currentDate,trial);
trial=new HashMap<String,Object>(); // the important thing you are probably missing
currentDate = ...;
for(...){
...
trial.put(key,value);
}
map1.put(currentDate,trial);
您必须在for循环中定义trial,更改trial的值后,立即将其放入map1
您应该在问题中发布您的代码。@Eran我已经更新了我的问题!!非常感谢。
HashMap<Date, Map<String, Object>> map1 = new HashMap<>();
String cuurentDate;
for(event = some condition){
Map<String, Object>trial=new HashMap<String,Object>();
String key = event.getKey;
Integer value= event.getValue;
trial.put(key,value)
map1.put(currentDate,trial)
}