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

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;
}