import java.util.ArrayList; import java.util.List; /** * * @author zyengogo * */ public class TreeList { static List newList=new ArrayList(); //获得子节点 public static List<TreePojo> getChild(TreePojo treeNode,List treeList){ List<TreePojo> childList = new ArrayList<TreePojo>(); for(int i = 0 ;i<treeList.size();i++){ if(treeNode.treeid == ((TreePojo)treeList.get(i)).getPid()){ childList.add((TreePojo)treeList.get(i)); } } return childList; } //获得根节点 public static List<TreePojo> getRootNode(List treeList){ List<TreePojo> rootList = new ArrayList<TreePojo>(); for(int i = 0 ;i<treeList.size();i++){ if(((TreePojo)treeList.get(i)).getPid()==0){ rootList.add((TreePojo)treeList.get(i)); } } return rootList; } //向新list中装入根节点并递归子节点 public static List setRootNode(List treeList){ List<TreePojo> rootNode = getRootNode(treeList); for(int i = 0 ;i<rootNode.size();i++){ newList.add(rootNode.get(i)); sortNode(rootNode.get(i),treeList); } return newList; } //递归子节点 public static List<TreePojo> sortNode(TreePojo rootNode,List treeList){ List<TreePojo> rightList=new ArrayList<TreePojo>(); List<TreePojo> childList = getChild(rootNode,treeList); if(childList!=null){ for(int i = 0;i<childList.size();i++){ newList.add(childList.get(i)); sortNode(childList.get(i),treeList); } } return childList; } //main方法调用 public static void main(String[] args) { List treeList2=new ArrayList(); treeList2.add(new TreePojo(7,5,"一级栏目1__子级2__子级1__")); treeList2.add(new TreePojo(1,0,"一级栏目1__")); treeList2.add(new TreePojo(2,0,"一级栏目2__")); treeList2.add(new TreePojo(3,1,"一级栏目1__子级1__")); treeList2.add(new TreePojo(4,0,"一级栏目3__")); treeList2.add(new TreePojo(5,1,"一级栏目1__子级2__")); treeList2.add(new TreePojo(6,1,"一级栏目1__子级3__")); treeList2.add(new TreePojo(8,0,"一级栏目4__")); treeList2.add(new TreePojo(9,2,"一级栏目2__子级1__")); List newList_=setRootNode(treeList2); //System.out.println(newList.size()); for(int i=0;i < newList_.size();i++){ TreePojo t=(TreePojo) newList_.get(i); System.out.println(t.getClassname()); } } }
/** * * @author zyengogo * */ public class TreePojo { int treeid; int pid; String classname; public TreePojo() { } public TreePojo(int treeid,int pid,String classname) { this.treeid = treeid; this.pid = pid; this.classname = classname; } public int getTreeid() { return treeid; } public void setTreeid(int treeid) { this.treeid = treeid; } public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public String getClassname() { return classname; } public void setClassname(String classname) { this.classname = classname; } }