什么是递归呢?
程序调用自身的编程技巧称为递归( recursion)
递归的实际例子
数据表设计:
ID NAME PID
我们现在就需要根据这个表格来编写一个递归方法 实现一个树形菜单的创建。
第一步:实现我们这个表的实体类。
public class Tree{
private string id;
private string name;
private string pid;
//以下省略get和set方法。
}
2.找到所有的父节点
public List<TreeEntity> findAllParents(){
String sql = "select * from test where pid is null or pid='' ";
}
3根据父节点找到所有的孩子
第二种实现方式:
users表:
orgs表:
company表:
public List<Map<String, Object>> getForTree(List<Map> corgList,String pid) {
List<Map<String, Object>> treeList =new ArrayList<Map<String, Object>>();
Map<String, Object> map = null;
for(Map<?, ?> corglist: corgList) {
String id = corglist.get("oid").toString();
String text = corglist.get("name").toString();
String type = corglist.get("type").toString();
String ssdsid = corglist.get("SSDS")==null?"sgs":corglist.get("ssds").toString();
String sjbmid = corglist.get("pid").toString();
if(sjbmid.equals(pid)){
map = new HashMap<String, Object>();
map.put("text",text);
map.put("children",getForTree(corgList,id));
map.put("TYPE",type);
map.put("OID",id);
map.put("SSDSID",ssdsid);
//map.put("state","closed");
treeList.add(map);
}
/*if (map!=null){
}*/
}
return treeList;
}
|