import java.util.ArrayList; import java.util.List; public class HList { static List<Node> list = new ArrayList<Node>(); static List<Node> resultList = new ArrayList<Node>(); public static class Node { public Node(int id, int pid) { this.id = id; this.pid = pid; } private int id; private int pid; public int getId() { return id; } public void setId(int id) { this.id = id; } public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } @Override public String toString() { return "[id=" + id + ", pid=" + pid + "]"; } } static { list.add(new Node(1,0)); list.add(new Node(2,1)); list.add(new Node(3,2)); list.add(new Node(4,2)); list.add(new Node(5,1)); list.add(new Node(6,5)); list.add(new Node(7,1)); } public static void sortList(List<Node> list,int id) { for (Node node :list) { if (node.getPid() == id) { resultList.add(node); sortList(list,node.getId()); } } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub sortList(list,0); System.out.println(resultList); } }