transformDeptTree方法问题?
来源:7-3 更新部门接口开发

北斗神拳1984
2018-07-18
public void transformDeptTree(List<DeptLevelDto> deptLevelList, String level, Multimap<String, DeptLevelDto> levelDeptMap) {
for (int i = 0; i < deptLevelList.size(); i++) {
// 遍历该层的每个元素
DeptLevelDto deptLevelDto = deptLevelList.get(i);
// 处理当前层级的数据
String nextLevel = LevelUtil.calculateLevel(level, deptLevelDto.getId());
// 处理下一层
List<DeptLevelDto> tempDeptList = (List<DeptLevelDto>) levelDeptMap.get(nextLevel);
if (CollectionUtils.isNotEmpty(tempDeptList)) {
// 排序
Collections.sort(tempDeptList, deptSeqComparator);
// 设置下一层部门
deptLevelDto.setDeptList(tempDeptList);
// 进入到下一层处理
transformDeptTree(tempDeptList, nextLevel, levelDeptMap);
}
}
}
levelDeptMap参数的泛型是Multimap<String, DeptLevelDto>,怎么会强转成List<DeptLevelDto>?
1回答
-
你好,guava里的Multimap 和普通的map是不一样的,你可以把他当做Map<String, List<DeptLevelDto>> 去理解,在做put操作时,是相当于在对应的list上增加一个值,而不是覆盖。在使用数据时,强转成List<DeptLevelDto>就可以了。相比Map<String, List<DeptLevelDto>>操作起来这个更方便一些。
012018-07-18
相似问题