开发者社区> 问答> 正文

Java HasgMap为给定的键给出了错误的值

我正在使用Map = Map(Integer,Map(String,List {Employee}))。填充地图后,如果我立即使用key(String)检索一些值。返回的列表正确。经过一些迭代后,值将改变。第一次将数据填充到地图中后,我没有在任何地方使用map.put。只有我正在使用map.get()。

私人地图>> createDataMap(列出employeeList){

for(Employee e:employeeList){       
    Map<Integer, HashMap<String, List<Employee>>> dataMap = new HashMap<>();
    int level = Integer.parseInt(e.getLevel());
    HashMap<String, List<Employee>> detailsMap = dataMap.get(level);
    if (Objects.isNull(detailsMap)) {
        detailsMap = new HashMap<>();
        dataMap.put(level, detailsMap);
    }
    String deptName = key.getDepartment();
    List<Employee> keyList = detailsMap.get(deptName);
    if (Objects.isNull(keyList)) {
        keyList = new ArrayList<>();
        detailsMap.put(dataMapKey, keyList);
    }
    keyList.add(key);
}
return dataMap;
}

展开
收起
垚tutu 2019-11-28 18:46:48 781 0
1 条回答
写回答
取消 提交回答
  • 精于基础,广于工具,熟于业务。

    是不是走进了这一步Objects.isNull(detailsMap),所以值发生了改变。

    2019-11-28 19:07:33
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载