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回答

Jimin

2018-07-18

你好,guava里的Multimap 和普通的map是不一样的,你可以把他当做Map<String, List<DeptLevelDto>> 去理解,在做put操作时,是相当于在对应的list上增加一个值,而不是覆盖。在使用数据时,强转成List<DeptLevelDto>就可以了。相比Map<String, List<DeptLevelDto>>操作起来这个更方便一些。

0
1
北斗神拳1984
原来是这个区别,谢谢老师
2018-07-18
共1条回复

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2261 学习 · 1347 问题

查看课程