黑马程序员技术交流社区

标题: ArrayList<User> 存储数据然后按 年龄倒序打出 [打印本页]

作者: 15917846944    时间: 2015-8-24 19:01
标题: ArrayList<User> 存储数据然后按 年龄倒序打出
        ArrayList<treatDemo> Arr=new ArrayList<treatDemo>();
               
                treatDemo T=new treatDemo("周杰伦",38);
                treatDemo T1=new treatDemo("姚明",50);
                treatDemo T2=new treatDemo("易建联",35);
                treatDemo  T3=new treatDemo("苏永康",28);
                treatDemo T4=new treatDemo("周星驰",51);
                treatDemo  T5=new treatDemo("张含韵",29);
               
                Arr.add(T);
                Arr.add(T1);
                Arr.add(T2);
                Arr.add(T3);
                Arr.add(T4);
                Arr.add(T5);
               
                for(int a=0;a<Arr.size();a++){
                        for(int i=a+1;i<Arr.size();i++){
                                        if(Arr.get(a).getAge()<Arr.get(i).getAge()){
                                                int I=Arr.get(a).getAge();
                                                Arr.set(  , );
                                                Arr.set(  ,);
                                               
                                               
                                        }
                       
当用Set兑换位置的时候,就出现问题了,请各位大神指导!
作者: pengbeilin    时间: 2015-8-24 19:17
本帖最后由 pengbeilin 于 2015-8-24 19:18 编辑

看到周杰伦我就进来了,我伦79年的 明明只有36岁
作者: pengbeilin    时间: 2015-8-24 19:23
本帖最后由 pengbeilin 于 2015-8-24 19:32 编辑

你可以用Collections工具类里的里面的排序的方法 Collections.sort(Arr,new newCompareto ());  

下面是自定义的比较器 按照年龄 从小到大排序:
  1. class newCompareto implements Comparator<treatDemo>{
  2.         public int compare(treatDemo t1,treatDemo t2){
  3.                 int num = new Integer(t1.getAge()).compareTo(new Integer(t2.getAge()));
  4.                 if(num==0)
  5.                         return t1.getName().compareTo(t2.getName());
  6.                 return num;
  7.         }
  8. }
复制代码





作者: 15917846944    时间: 2015-8-24 23:34
pengbeilin 发表于 2015-8-24 19:23
你可以用Collections工具类里的里面的排序的方法 Collections.sort(Arr,new newCompareto ()); ...

谢谢你啊,大神!
作者: pengbeilin    时间: 2015-8-25 08:38
15917846944 发表于 2015-8-24 23:34
谢谢你啊,大神!

不知道能不能达到你的要求~ 代码放进去有效吗?
作者: 15917846944    时间: 2015-8-25 14:12
pengbeilin 发表于 2015-8-25 08:38
不知道能不能达到你的要求~ 代码放进去有效吗?

我在学生类里面了,实现了Comparable接口,然后复写了Comparable的compareTo方法,接着在本类调用了Collections.sort(),方法,效果是一样的!谢谢你的指点!
作者: pengbeilin    时间: 2015-8-25 14:26
15917846944 发表于 2015-8-25 14:12
我在学生类里面了,实现了Comparable接口,然后复写了Comparable的compareTo方法,接着在本类调用了Colle ...

也是~受教受教




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2