最代码折颜的gravatar头像
最代码折颜 2017-07-06 18:03:20

java树形结构如何用递归实现?

树级结构想用递归实现,因为延伸的层级不确定,请大神赐教!

所有回答列表(2)
lonesafe的gravatar头像
lonesafe  LV11 2017年7月7日
public class Ttt {
	public String tree(List<Map> ret, String rootId, String p) {
		StringBuffer retList = new StringBuffer();
		for (Map m : ret) {
			if (rootId.equals(m.get("PARENTID"))) {
				retList.append(p+m.get("NAME")+"\n");
				retList.append(tree(ret, (String) m.get("ID"), p + "-"));
			}
		}
		return retList.toString();
	}

	public static void main(String[] args) {
		List<Map> list = new ArrayList<>();
		Map m = new HashMap<>();
		m.put("ID", "1");
		m.put("NAME", "a");
		m.put("PARENTID", "root");
		list.add(m);
		m = new HashMap<>();
		m.put("ID", "2");
		m.put("NAME", "b");
		m.put("PARENTID", "1");
		list.add(m);
		m = new HashMap<>();
		m.put("ID", "3");
		m.put("NAME", "c");
		m.put("PARENTID", "2");
		list.add(m);
		m = new HashMap<>();
		m.put("ID", "4");
		m.put("NAME", "d");
		m.put("PARENTID", "1");
		list.add(m);
		m = new HashMap<>();
		m.put("ID", "5");
		m.put("NAME", "e");
		m.put("PARENTID", "root");
		list.add(m);
		m = new HashMap<>();
		m.put("ID", "6");
		m.put("NAME", "f");
		m.put("PARENTID", "5");
		list.add(m);
		m = new HashMap<>();
		m.put("ID", "7");
		m.put("NAME", "g");
		m.put("PARENTID", "2");
		list.add(m);
		m = new HashMap<>();
		m.put("ID", "8");
		m.put("NAME", "h");
		m.put("PARENTID", "2");
		list.add(m);
		m = new HashMap<>();
		m.put("ID", "9");
		m.put("NAME", "i");
		m.put("PARENTID", "3");
		list.add(m);
		Ttt t = new Ttt();
		System.out.println(t.tree(list, "root", ""));
	}
}

运行效果

java树形结构如何用递归实现?

kisn888的gravatar头像
kisn888  LV14 2017年7月7日

ID,parentid,数据库用start-with递归实现

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友