双list封装成二级树状结构的算法的简单优化
本人在近期的工作过程中遇到了需要将两个list中的数据封装到一个树状的list中的业务。由于数据量较大,肯定是无法使用for循环嵌套来实现的,所以在这里记录一下。(下面是伪代码,主要是记录思路)
//中间量map
Map<Integer, List<Object>> map = new HashMap<>();
//父集合
List<Object> father = new ArrayList<>();
//子集合
List<Object> son = new ArrayList<>();
//将父集合的id作为key 子集合的所有对应该id的对象放到一个list中 作为value
for (Object o : son) {
List<Object> list = null;
if (map.containsKey(o.getFatherId)){
list = map.get(o.getFatherId);
}else {
List<Object> list = new ArrayList<>();
}
list.add(o);
map.put(o.getFatherId,list);
}
//遍历父集合,将以父亲的id作为key 拿到对应的list 存入children中
for (Object o : father) {
if (map.get(o.getId) != null){
o.setChildren(map.get(o.getId));
}
}
本文介绍了一种优化方法,用于将两个list中的数据高效地封装成二级树状结构的list,避免了传统for循环嵌套导致的时间复杂度问题。作者通过伪代码分享了解决思路。
&spm=1001.2101.3001.5002&articleId=110867277&d=1&t=3&u=80ab6b972b544ef999dbf8f8c4851c1d)
528

被折叠的 条评论
为什么被折叠?



