将集合转换成具有层级结构的map、写了一天了没想出怎么实现、有没有大lao9⃣️9⃣️我!!(正文非得30个字么,我上哪儿编30个字去)

将集合转换成具有层级结构的map、写了一天了没想出怎么实现、有没有大lao9⃣️9⃣️我!!
将集合转换成具有层级结构的map、写了一天了没想出怎么实现、有没有大lao9⃣️9⃣️我!!(正文非得30个字么,我上哪儿编30个字去)
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
10条回答 默认 最新
- 瘦死的黑骆驼 2022-07-20 10:19关注
public static void main(String[] args) { List<String> pathList = Arrays.asList("/etc/hosts", "/etc/kubernetes/ssl/certs", "/root"); Map<String, Object> resultMap = pathListToMap(pathList); System.out.println(resultMap); } public static Map<String, Object> pathListToMap(List<String> pathList) { Map<String, Object> resultMap = new HashMap<>(); pathList.forEach(path -> { String[] pathSplitArray = path.split("/"); // 每个目录循环时需要记录上层目录的对象 Map<String, Object> parentObj = null; for (int i = 0; i < pathSplitArray.length; i++) { if (StringUtils.isEmpty(pathSplitArray[i])) { continue; } parentObj = parentObj == null ? resultMap : parentObj; Object currentObj = parentObj.get(pathSplitArray[i]); if (currentObj == null) { currentObj = new HashMap<>(); parentObj.put(pathSplitArray[i], currentObj); } parentObj = (Map) currentObj; } }); return resultMap; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用