java 遍历数组生成 树状结构


public static void main(String[] args) {
		List node = new ArrayList();
		node.add(new Demo("1", "0", "吉林省", new ArrayList()));
		node.add(new Demo("2", "1", "長春市", new ArrayList()));
		node.add(new Demo("3", "1", "松原市", new ArrayList()));
		node.add(new Demo("4", "0", "遼寧省", new ArrayList()));
		node.add(new Demo("5", "4", "沈陽市", new ArrayList()));
		node.add(new Demo("6", "3", "扶余县", new ArrayList()));
		Map maps = new HashMap<>();
		node.forEach(e -> {
			maps.put(e.getId() + "", e);
		});
		List nodes = new ArrayList();
		node.forEach(e -> {
			Demo demo = maps.get(e.getPid());
			if (demo != null) {
				maps.get(e.getPid()).getChild().add(e);
			} else {
				nodes.add(e);
			}
		});
	
		System.out.println(nodes);
	}
实体类

    /**  
     * @Title: Demo.java
     * @Package javaDemo.demoTest
     * @Description: TODO(用一句话描述该文件做什么)
     * @author dongwei_qi
     * @date 2020年7月3日 下午1:33:31 
     * @version V1.0  
     */
    
package javaDemo.demoTest;

import java.util.List;

/**
     * @ClassName: Demo
     * @Description: TODO(这里用一句话描述这个类的作用)
     * @author dongwei_qi
     * @date 2020年7月3日
     *
     */

public class Demo {
	
	private String id;
	
	private String pid;
	
	private String name;
	
	private List child;

	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	
	public String getPid() {
		return pid;
	}
	public void setPid(String pid) {
		this.pid = pid;
	}

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	public List getChild() {
		return child;
	}

	public void setChild(List child) {
		this.child = child;
	}
	public Demo(String id,String pid,String name,List child) {
		this.id = id;
		this.pid = pid;
		this.name = name;
		this.child = child;
	}    
	@Override
	public String toString() {
		return "Demo [id=" + id + ", pid=" + pid + ", name=" + name + ", child=" + child + "]";
	}
	
}


你可能感兴趣的:(java)