`

java tree

 
阅读更多
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;


public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		List list = new ArrayList();
		Module module = new Module("模块1",1);
		Module module2 = new Module("模块11",3);
		Module module3 = new Module("模块111",111);
		Module module4 = new Module("模块12",4);
		Module module5 = new Module("模块13",1);
		Module module6 = new Module("模块131",4);
		Module module7 = new Module("模块132",1);
		Module module8 = new Module("模块1311",1311);
		
		Module module9 = new Module("模块0",0);
		module2.getSubList().add(module3);
		module.getSubList().add(module2);
		module.getSubList().add(module4);
		
		module5.getSubList().add(module7);
		module6.getSubList().add(module8);
		module5.getSubList().add(module6);
		module.getSubList().add(module5);
		
		list.add(module);
		list.add(module9);
		
		
		
		
		printList(list);
		System.out.println("----------------------------------------");
		Comparator c = new Comparator(){

			@Override
			public int compare(Object o1, Object o2) {
				Module m1 = (Module)o1;
				Module m2 = (Module)o2;
				return m1.getSorder()<=m2.getSorder() ? -1 : 1;
			}
			
			
		};
		sortList(list, c);
		
		printList(list);
	}
	
	public static void sortList(List<Module> list,Comparator c){
		Collections.sort(list, c);
		for (Module m : list) {
			if(m.getSubList().size()>0){
				sortList(m.getSubList(), c);
				
			}
			
		}
	}
	
	public static void printList(List<Module> list){
		for (Module m : list) {
			System.out.println("List -->" + m.getName()+" ->" + m.getSorder());
			if(m.getSubList().size()>0){
				printList(m.getSubList());
			}
		}
	}
}

class Module{
	public Module(String name, int sorder) {
		super();
		this.name = name;
		this.sorder = sorder;
	}
	private String name;
	private int sorder;
	private List<Module> subList = new ArrayList();
	
	public List getSubList() {
		return subList;
	}
	public void setSubList(List subList) {
		this.subList = subList;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getSorder() {
		return sorder;
	}
	public void setSorder(int sorder) {
		this.sorder = sorder;
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics