根据机构递归出下属机构,并层次排列

	private int count;
	private Map<String, String> orgMap = null;

	public Map<String, String> listOrganizations(Organization org) {
		orgMap = new LinkedHashMap<String, String>();
		count = 0;
		String orgId = null;
		if (org != null) {
			orgMap.put(org.getId(), "├" + org.getName());
			orgId = org.getId();
		} else {
			count = -1;
		}
		List<Organization> list = this.organizationDao.getChildrenById(orgId);
		recursiveOrg(list, org);
		return orgMap;
	}

	public void recursiveOrg(List<Organization> child, Organization parent) {
		//每向下一层,多一个缩入单位
		count++;
		String strPading = ""; //缩入字符 

	    //通过i来控制缩入字符的长度,我这里设定的是一个全角的空格 
		for (int i = 0; i < count; i++)
			strPading += " ";//如果要增加缩入的长度,改成两个全角的空格就可以了 
		if (child != null && child.size() > 0) {
			for (int i = 0; i < child.size(); i++) {
				Organization par = child.get(i);
				orgMap.put(par.getId(), strPading + "├" + par.getName());
				recursiveOrg(par.getChildren(), par);
			}
		}
		//递归结束,要回到上一层,所以缩入量减少一个单位 
		count--;
	}
效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值