`
fireinjava
  • 浏览: 475587 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

java 列表转树形

    博客分类:
  • Java
阅读更多

往往要将数据库中的菜单配置转成树形结构展示到前台,这边提供一种二维树组转树形(同事那边看来的,很好用),以供参考:

数据库  id,name,parent_id

java对象:

private class TreeNode{
	private String id;
	private String name;
	private String parentId;
	private List<TreeNode> children;
	
	// TODO getter/setter
}

树构造代码如下:

		List<TreeNode> menuList = xxManager.findAllMenu();
		
		List<TreeNode> nodeList = new ArrayList<TreeNode>();
		for(TreeNode node1 : menuList){
			boolean mark = false;
			for(TreeNode node2 : menuList){
				if(node1.getParentId()!=null && node1.getParentId().equals(node2.getId())){
					mark = true;
					if(node2.getChildren() == null)
						node2.setChildren(new ArrayList<TreeNode>());
					node2.getChildren().add(node1); 
					break;
				}
			}
			if(!mark){
				nodeList.add(node1); 
			}
		}
		//转为json格式		
		String json = JSONArray.fromObject(nodeList).toString();
		System.out.println("json:"+json);

原理如下图了:


 

  • 大小: 6.7 KB
分享到:
评论
2 楼 学渣村的好村长 2017-06-02  
  
1 楼 wawj0819 2016-04-15  

相关推荐

Global site tag (gtag.js) - Google Analytics