日期:2014-05-20 浏览次数:20959 次
/**
* @param PostCode
* 根据父节点获取所有子节点岗位编号
* @return 树的子结点集合
*/
@SuppressWarnings("unchecked")
public List<JobType> getPostCodeChilds(String postCode) {
List<JobType> ret = new ArrayList<JobType>();
List<JobType> retRecursive = null;
List<JobType> children = getChildrenNodes(postCode);
for(JobType job0 : children){
String displayOrder = job0.getDisplyOrder();
if(!CommUtil.isNull(displayOrder) && displayOrder.equals("po")){
ret.add(job0);
}else{
retRecursive = getPostCodeChilds(job0.getJobTypeCode());
if(ret.size() == 0){
ret = retRecursive;
}else{
ret.addAll(retRecursive);
}
}
}
return ret;
}
------解决方案--------------------
。。。你这个不知道深度是多少。除了用递归。还能怎么办啊。
------解决方案--------------------
这个结构用递归简单点吧,要不是用算法去写,估计得相当麻烦,
------解决方案--------------------
select d.* from basis_organization d
start with d.organizationid='O00001'
connect by prior d.organizationid=d.parentid;
------解决方案--------------------
用队列吧
------解决方案--------------------
用递归,堆栈,列表,队列什么都可以,关键看你需要什么
------解决方案--------------------
oracle 数据库 递归查询sql
select t.* from table t
start with t.id= :p
connect by ..
------解决方案--------------------
建议多理解递归,动态规划~~
这是最基本的一些算法。