http://hi.baidu.com/suofang/blog/item/76cbd962be93f4dae7113ad2.html
public class ListSort {
public static void main(String args[]){
List list=new ArrayList();
Category c=new Category();
c.setCategoryName("服务展示");
c.setCategoryId(1);
c.setParId(0);
list.add(c);
c=new Category();
c.setCategoryId(2);
c.setCategoryName("用户注册");
c.setParId(0);
list.add(c);
c=new Category();
c.setCategoryId(3);
c.setCategoryName("劳动就业"); //二级目录
c.setParId(1);
list.add(c);
c=new Category();
c.setCategoryId(4);
c.setCategoryName("少儿保险");
c.setParId(1);
list.add(c);
c=new Category();
c.setCategoryId(5);
c.setCategoryName("信息发布");
c.setParId(0);
list.add(c);
c=new Category();
c.setCategoryId(7);
c.setCategoryName("新闻中心");
c.setParId(5);
list.add(c);
c=new Category();
c.setCategoryId(8);
c.setCategoryName("养老保险");
c.setParId(1);
list.add(c);
/*c=new Category();
c.setCategoryId(6);
c.setCategoryName("招工信息");//三级目录
c.setParId(3);
list.add(c);*/
CategoryComparator cc=new ListSort().new CategoryComparator();
Collections.sort(list,cc); // 排序
Collections.reverse(list);
for(Object o:list){
Category ca=(Category)o;
System.out.println(ca.getParId()+"------"+ca.getCategoryName());
}
}
private class CategoryComparator implements Comparator{ //实现排序算法
public int compare(Object o1, Object o2) {
Category c1=(Category)o1;
Category c2=(Category)o2;
if(c1.getParId()==c2.getParId()){
return 0;
}
else if(c1.getParId()>c2.getParId()){
return c1.getParId();
}
return c2.getParId(); //实现了二级目录,三级目录就不行了
}
}
}
---------------------------
public class ListSort {
List sortList=new ArrayList(); //用递归会增加一培的内存
static List list=new ArrayList();
public static void main(String args[]){
ListSort ls=new ListSort();
Category c=new Category();
c.setCategoryName("服务展示");
c.setCategoryId(1);
c.setParId(0);
list.add(c);
c=new Category();
c.setCategoryId(2);
c.setCategoryName("用户注册");
c.setParId(0);
list.add(c);
c=new Category();
c.setCategoryId(3);
c.setCategoryName("劳动就业"); //二级目录
c.setParId(1);
list.add(c);
c=new Category();
c.setCategoryId(4);
c.setCategoryName("少儿保险");
c.setParId(1);
list.add(c);
c=new Category();
c.setCategoryId(5);
c.setCategoryName("信息发布");
c.setParId(0);
list.add(c);
c=new Category();
c.setCategoryId(7);
c.setCategoryName("新闻中心");
c.setParId(5);
list.add(c);
c=new Category();
c.setCategoryId(8);
c.setCategoryName("养老保险");
c.setParId(1);
list.add(c);
c=new Category();
c.setCategoryId(6);
c.setCategoryName("招工信息");//三级目录
c.setParId(3);
list.add(c);
ls.tree(0);
for(Object o:ls.sortList){
Category cc=(Category)o;
System.out.println("id: "+cc.getCategoryId()+" par: "+cc.getParId()+" name: "+cc.getCategoryName());
}
}
public void tree(int n){
int size=list.size();
for(int i=0;i<size;i++){
Category c=(Category)list.get(i);
if(c.getParId()==n){
sortList.add(c);
tree(c.getCategoryId()); //自调用,递归
}
}
}
}
显示如下
id: 1 par: 0 name: 服务展示
id: 3 par: 1 name: 劳动就业
id: 6 par: 3 name: 招工信息
id: 4 par: 1 name: 少儿保险
id: 8 par: 1 name: 养老保险
id: 2 par: 0 name: 用户注册
id: 5 par: 0 name: 信息发布
id: 7 par: 5 name: 新闻中心
分享到:
相关推荐
用ArrayList实现的排序算法,希望对有需要的同学有帮助,如有错误请指出。JDK版本为1.7
java中对ArrayList进行排序的方法参考
用java语言编写一个程序实现学员成绩管理,每个学员包括3门课的成绩,从键盘输入学员信息, 包括学号、姓名、三门课成绩,计算出学员的平均成绩,按照学员平均成绩由大到小排序 插入功能:在排序后的学员成绩表中...
由于其功能性和灵活性,ArrayList是 Java 集合框架中使用为普遍的集合类之一。ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减。你...
主要介绍了java的arraylist排序示例,学习一下arraylist的用法,需要的朋友可以参考下
本文通过代码示例给大家介绍java对arraylist排序,代码简洁易懂,感兴趣的朋友一起学习吧
ArrayList排序和遍历补充案例.java
主要介绍了Java针对ArrayList自定义排序的2种实现方法,结合实例形式总结分析了Java操作ArrayList自定义排序的原理与相关实现技巧,需要的朋友可以参考下
常常遇到数组排序的问题,下面提供二个java的arraylist排序示例,需要的朋友可以参考下
java List排序工具类 使用示例: new OrderUtils().order(list, "name", OrderUtils.DESC); 相关实例代码: public static void main(String[] args) { List<Person> list = getData(); // 获取无序数据 new ...
Java 对象排序详解 本文主要关注排序Collection的ArrayList、HashSet、TreeSet,以及最后但并非最不重要的数组。
ArrayList ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。...Java ArrayList 方法
NULL 博文链接:https://luoxiaohui-java.iteye.com/blog/1489685
主要介绍了java ArrayList集合中的某个对象属性进行排序的实现代码,需要的朋友可以参考下
主要介绍了java实现ArrayList根据存储对象排序功能,结合实例形式分析了java针对ArrayList的相关运算、排序操作技巧,需要的朋友可以参考下
List<String> location=new ArrayList(); 一行代码轻松搞定混合排序问题 Collections.sort(location, new SortUtils(true));
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class SortTest { public static void main(String[] args)throws Exception { String[] strs2=new String[]{...
字符串数组 排序
主要介绍了对arraylist中元素进行排序实例代码,还是比较不错的,这里分享给大家,供需要的朋友参考。