Java小程序:list和tree相互转换
来源:互联网 发布:数据库架构师培训 编辑:程序博客网 时间:2024/06/16 12:25
废话不多讲,直接上代码
public class TreeDTO { private String id; private String parentId; private String name; private List<TreeDTO> children; public TreeDTO() { } public TreeDTO(String id,String parentId,String name) { this.id = id; this.name= name; this.parentId=parentId; } //setters getters @Override public String toString() { return this.id+","+this.parentId+","+this.name; } }public class TreeListConvertDemo { public static void main(String[] args) { List<TreeDTO> list = new ArrayList<TreeDTO>(); list.add(new TreeDTO("1",null,"中国")); list.add(new TreeDTO("2","1","广东")); list.add(new TreeDTO("3","2","广州")); list.add(new TreeDTO("4","2","深圳")); list.add(new TreeDTO("5","3","越秀")); list.add(new TreeDTO("6","3","天河")); list.add(new TreeDTO("7","4","福田")); list.add(new TreeDTO("8","4","南山")); list.add(new TreeDTO("9","4","罗湖")); list.add(new TreeDTO("10","1","河南")); list.add(new TreeDTO("11","10","郑州")); list.add(new TreeDTO("12","11","二七")); List<TreeDTO> trees = list2tree(list); System.out.println(trees.size()); List<TreeDTO> list2 = new ArrayList<>(); tree2list(trees.get(0),list2,null); System.out.println(list2.size()); } //Tree转list public static void tree2list(TreeDTO root,List<TreeDTO> list,String parentId){ if (root == null) { return ; }// TreeDTO d = new TreeDTO(UUIDUtil.getId(),parentId,root.getName()); TreeDTO d = new TreeDTO(root.getId(),parentId,root.getName()); list.add(d); if (root.getChildren()==null){ return; } for (TreeDTO sub:root.getChildren()){ tree2list(sub, list, d.getId()); } } //list转Tree public static List<TreeDTO> list2tree(List<TreeDTO> srclist){ List<TreeDTO> trees = new ArrayList<TreeDTO>(); for (TreeDTO t1:srclist){ boolean isRoot = true; for (TreeDTO t2:srclist){ if (t1.getParentId()!=null&&t1.getParentId().equals(t2.getId())){ isRoot = false; if (t2.getChildren()==null){ t2.setChildren(new ArrayList<TreeDTO>()); } t2.getChildren().add(t1); break; } } if (isRoot){ trees.add(t1); } } return trees; }}
阅读全文
0 0
- Java小程序:list和tree相互转换
- Java:List和Array相互转换
- java数组和List相互转换
- 【Java】List和String [] 的相互转换
- java List和数组相互转换方法
- java 数组 List 相互转换
- DataTable 和List 相互转换
- DataTable 和List 相互转换
- DataTable 和List 相互转换
- 数组和list相互转换
- DataTable 和List 相互转换
- List和数组相互转换
- array和list相互转换
- DataSet和List相互转换
- DataTable 和List 相互转换
- List和DataTable相互转换
- list和数组相互转换
- [java]关于数组和List之间相互转换的方法
- java中Stack栈
- C++之命名空间
- 用scrapy获取代理ip地址
- JavaEE-Servlet基础
- 作为学渣说一下关于学渣的面试经验
- Java小程序:list和tree相互转换
- 导入第三方库的方式及其常见问题(实训)
- JavaEE-Serlvet会话跟踪
- COOKIE安全与防护
- 【数据库】Redis学习
- LeetCode 371. Sum of Two Integers
- 计算机组成原理考试大纲
- ARM笔记2
- 一个web请求的艰辛历程