此方法效率较低,推荐查看博客

研究将有pid和id的List<Map<String,Map>>组成树

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* 〈一句话功能简述〉
* 〈功能详细描述〉
*
* @author 龙谷情
* @date 2020/4/22-17:29
* @since [v1.0]
*/
public class MaplistMap { public List<Object> getResult() {
List<Map> queryList = getQueryList();
List<Object> resultList = new ArrayList<>();
//为每一个节点添加孩子字段
for(Map map : queryList){
List<Map> childList = new ArrayList<>();
map.put("child",childList);
}
for(Map map : queryList){
for(Map childMap : queryList){
if(childMap.get("fid").toString().equals(map.get("id").toString())){
List<Map> arrList = (ArrayList<Map>) map.get("child");
arrList.add(childMap);
System.out.println("");
}
}
resultList.add(map);
} return resultList;
} /**
* 获得模拟的含有父子关系的数据
*
*/
public List<Map> getQueryList() {
Map<String, String> queryMap1 = getQueryMap("1", "name1", "");
Map<String, String> queryMap2 = getQueryMap("2", "name2", "1");
Map<String, String> queryMap3 = getQueryMap("3", "name3", "1");
Map<String, String> queryMap4 = getQueryMap("4", "name4", "2");
Map<String, String> queryMap5 = getQueryMap("5", "name5", "3");
Map<String, String> queryMap6 = getQueryMap("6", "name6", "2");
Map<String, String> queryMap7 = getQueryMap("7", "name7", "5");
Map<String, String> queryMap8 = getQueryMap("8", "name8", "4");
Map<String, String> queryMap9 = getQueryMap("9", "name9", "7");
Map<String, String> queryMap10 = getQueryMap("10", "name10", "7");
Map<String, String> queryMap11 = getQueryMap("11", "name11", "7");
Map<String, String> queryMap12 = getQueryMap("12", "name12", "8"); List<Map> queryList = new ArrayList<>();
queryList.add(queryMap1);
queryList.add(queryMap2);
queryList.add(queryMap3);
queryList.add(queryMap4);
queryList.add(queryMap5);
queryList.add(queryMap6);
queryList.add(queryMap7);
queryList.add(queryMap8);
queryList.add(queryMap9);
queryList.add(queryMap10);
queryList.add(queryMap11);
queryList.add(queryMap12);
return queryList;
} /**
* 数据模拟
*
*/
private Map<String, String> getQueryMap(String id, String name, String fid) {
Map<String, String> queryMap = new HashMap<>();
queryMap.put("id", id);
queryMap.put("name", name);
queryMap.put("fid", fid);
return queryMap;
}
}
												

将有父子关系的多个map写到一起。将子孙放到父级节点中,每个节点都会关联起来(使用list和map)的更多相关文章

  1. 7.QT-Qt对象间的父子关系

    Qt对象之间可以存在父子关系 继承于QObject类或者其子类的对象,都称为Qt对象 当指定Qt对象的父对象时 需要通过setParent()成员函数来设置对象间的父子关系 子对象将会把自己的指针地址 ...

  2. maven创建父子关系的聚合项目

    我最近使用eclipse的mavean插件创建父子关系的聚合项目,如果创建子工程直接在父工程我相信大家都会创建,但是子工程在父工程中的其中一个文件夹里面,我们创建子工程是直接存在父工程下面的,当我们想 ...

  3. [转]NHibernate之旅(9):探索父子关系(一对多关系)

    本节内容 引入 NHibernate中的集合类型 建立父子关系 父子关联映射 结语 引入 通过前几篇文章的介绍,基本上了解了NHibernate,但是在NHibernate中映射关系是NHiberna ...

  4. elasticsearch 父子关系

    ElasticSearch 中的Parent-Child关系和nested模型是相似的, 两个都可以用于复杂的数据结构中,区别是 nested 类型的文档是把所有的实体聚合到一个文档中而Parent- ...

  5. Logstash 父子关系 配置

    最近在使用Lostash的过程中遇到了一个问题:在一个log文件里包含两类数据,而且两类数据之间存在父子关系,那如何使用lostash的configuration实现这个需求呢 思路: 首先定义父事件 ...

  6. margin collapse 之父子关系的DIV

    打算花点时间将知识整理一下,虽然平时现用现查都能完成工作,可是当遇到面试这种事情的时候,临时查就来不及了... 关于margin,整理若干知识点如下: 一:父子关系的DIV标签以及未加margin时的 ...

  7. iOS 父子关系

    1.面向对象特征,类的继承 成员变量(实例变量) 子类继承父类所有功能,只能直接(访问)调用父类中的.h中的protect和public成员变量(实例变量)及方法, .h中的私有的成员变量,子类不能直 ...

  8. Qt 对象间的父子关系

    C++中只要有一个new就必须要有一个delete与之对应 但是Qt中的对象之间有特殊的关系 Qt 对象间的父子关系 每一个对象都保存有它所有子对象的指针 每一个对象都有一个指向其父对象的指针 par ...

  9. MFC窗口的父子关系和层级关系

    一直对窗口之间的关系有些混乱,遇到需要指定父窗口的函数时常常要考虑很久,究竟父窗口是哪个窗口,遂上网查资料,略有所悟,简记如下: 对话框中的所有控件(比如Button等)都是其子窗口.        ...

  10. oracle处理节点之间的父子关系

    通常当与树的结构之间的关系处理,这是一个很复杂的事情,我们可以通过程序代码去逐层遍历父或子节点,这样做的缺点是很明显,效率不高,操作复杂性是比较大的.而当我们使用Oracle当数据库,我们可以有一个简 ...

随机推荐

  1. jmeter使用json断言校验返回结果

    jmeter断言有好几种方式,本案讲json断言 http请求返回数据的格式有json格式,如下图,比如需要验证"ShipperRealName"参数的值 步骤如下: 第一步,选中 ...

  2. kettle介绍-Step之Value Mapper

    Value Mapper值映射介绍 值映射步骤是将字符串值从一个值映射为另一个值.值映射步骤提供了一个简单的替代方法,在输入流中选中一个字段,通过字段值设置源值和目标值,再将映射值输出给后续步骤使用. ...

  3. 精选 14 款 .NET 开源、功能强大的快速开发框架,提高开发生产效率、避免工作996!

    前言 最近发现DotNetGuide技术社区微信交流群有不少小伙伴在问:.NET有哪些不错的快速开发框架推荐的? 选择一款全面且功能强大的快速开发框架能够帮助我们解决C#..NET项目中的很多重复工作 ...

  4. 解析异步消息加上(→_→)@SuppressLint("HandlerLeak")

    在主线程又Handler处理消息出现时这样写会有警告 private Handler handler = new Handler(){ @Override public void handleMess ...

  5. 信息资源管理文字题之“航空集团从哪些方面改变企业的IT服务”

    一.材料:某航空集团公司拥有一个地域分散.多厂商.多平台.多系统的复杂IT环境.IT系统运行复杂,业务系统故障多,技术人员的被动工作方式难以适应企业IT服务需要. 要求:是运用IT服务管理关联只是为该 ...

  6. 0x01 - 我的第一个 Object Visitor

    我的第一个 Object Visitor 预演准备 为了顺利的进行测试,你需要确保本地已经安装了以下这些必备的软件: dotnet 2.1 或者以上版本的 SDK,我们更建议直接安装 dotnet 5 ...

  7. ISCC2025破阵夺旗赛三阶段Misc详解 By Alexander

    ISCC2025破阵夺旗赛三阶段Misc详解 By Alexander 写在前面:十八天吃石终于结束了,第一次就让我见到了这个比赛有多么的构式,平台是构式的,睡一觉就1000解了,全是对flag的渴望 ...

  8. 一个基于 C# 编写的事件驱动、具备专业水准的算法交易平台(量化交易引擎)

    前言 今天大姚给大家分享一个基于 C# 编写的事件驱动.采用模块化设计.具备专业水准的算法交易平台(量化交易引擎):Lean. 项目介绍 Lean 是由 QuantConnect 提供的一个基于 C# ...

  9. HDE演讲---RN应用的鸿蒙化适配经验分享

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  10. 10年+.NET Coder 心语 ── 单一职责原则的思维:为什么你的代码总在"牵一发而动全身"

    引言 在编程的世界里,面向对象设计(Object-Oriented Design, OOD)就像盖房子时打下的地基,决定了一个系统是否稳固.耐用.而在众多设计原则中,单一职责原则(Single Res ...