求某个节点的所有父节点

package com.fh.service.xtgl;

import com.fh.util.PageData;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

//根据list树状菜单,求某个节点的所有父节点
public class TreeService {

public static String getTree(String DEPT_ID,List list,List result)throws Exception{

    String name = "";

//循环遍历list
for(int i = 0;list.size()>i;i++){

//获取节点
String deptId = list.get(i).get(“DEPT_ID”).toString();
//判断节点和传过来的参数是否相同,如果相同获取节点名称
if(deptId.equals(DEPT_ID)){
name = list.get(i).get(“DEPT_NAME”).toString();
result.add(name);//将获取到的节点名称,添加到list集合中
getTree(list.get(i).getString(“PID”),list,result);//递归方法
}
}
String DEPT_NAME = “”; //定义一个字符串
//拼接返回值,排序(倒序)
for (int i = result.size() - 1; i >= 0; i–) {
DEPT_NAME += result.get(i)+”-“;
}
//去除字符串后面的连接符“-”
if(DEPT_NAME.length()>0){
DEPT_NAME = DEPT_NAME.substring(0,DEPT_NAME.length()-1);
}
return DEPT_NAME;
}

public static void main(String[] args) throws Exception {
    String DEPT_ID = "5";

//注意:这里的PageData对象相当于Map对象
PageData pageData1 = new PageData();
pageData1.put(“DEPT_ID”,”1”);pageData1.put(“DEPT_NAME”,”中国”);pageData1.put(“PID”,”0”);
PageData pageData2 = new PageData();
pageData2.put(“DEPT_ID”,”2”);pageData2.put(“DEPT_NAME”,”北京”);pageData2.put(“PID”,”1”);
PageData pageData3 = new PageData();
pageData3.put(“DEPT_ID”,”3”);pageData3.put(“DEPT_NAME”,”丰台区”);pageData3.put(“PID”,”2”);
PageData pageData4 = new PageData();
pageData4.put(“DEPT_ID”,”4”);pageData4.put(“DEPT_NAME”,”海淀区”);pageData4.put(“PID”,”2”);
PageData pageData5 = new PageData();
pageData5.put(“DEPT_ID”,”5”);pageData5.put(“DEPT_NAME”,”山西”);pageData5.put(“PID”,”1”);
PageData pageData6 = new PageData();
pageData6.put(“DEPT_ID”,”6”);pageData6.put(“DEPT_NAME”,”太原”);pageData6.put(“PID”,”5”);
List list = new ArrayList();
list.add(pageData1);
list.add(pageData2);
list.add(pageData3);
list.add(pageData4);
list.add(pageData5);
list.add(pageData6);
List result = new ArrayList();//定义一个list结果集

    String  str = getTree(DEPT_ID,list,result);

    System.out.println(str);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值