如何对下面的list中o[o]由大到小排序,并且排序后名字要对应和原来成绩对应,排序后返回一个ArrayList<object[]>
ArrayList<Object[]> list = new ArrayList<Object[]>();
Object[] o = new Object[2];
o[0] = 73;
o[1] ="张三";
list.add(o);Object[] o = new Object[2];
o[0] = 98;
o[1] ="李四";
list.add(o);Object[] o = new Object[2];
o[0] = 67;
o[1] ="王五";
list.add(o);

解决方案 »

  1.   

    Collections.sort(list);
    for(Object[] o : list){
        System.out.println(o[0]+":"o[1]);
    }
      

  2.   

      Collections.sort(list, new Comparator(){
                public int compare(Object o1, Object o2) {
                    Object[] a=(Object[]) o1;
                    Object[] b=(Object[]) o2;
                    if(Integer.valueOf(a[0].toString())>Integer.valueOf(b[0].toString())){
                        return 1;
                    }
                    return -1;
                }});
      

  3.   

    Collections这个我还没用过,记得list有个sort方法就是点不出来,送分给你们了,谢谢了
      

  4.   


    public static void main(String[] args)
        {
            ArrayList <Object[]> list = new ArrayList <Object[]>();
     
            Object[] o = new Object[2];
            o[0] = 723;
            o[1] ="张三";
            list.add(o);        Object[] o1 = new Object[2];
            o1[0] = 98;
            o1[1] ="李四";
            list.add(o1);        Object[] o2 = new Object[2];
            o2[0] = 67;
            o2[1] ="王五";
            list.add(o2);
            
            MyComparator mc = new MyComparator();
            
            Collections.sort(list, mc);
            
            
            for (Object[] objects : list)
            {
                System.out.println(objects[0]);
            }
            
        }
    ===============================================================
    class MyComparator implements Comparator{
        
        public int compare(Object o1, Object o2)
        {
            Object[] obj1 = (Object[])o1;
            Object[] obj2 = (Object[])o2;
            int v1 = Integer.valueOf(String.valueOf(obj1[0]));
            int v2 = Integer.valueOf(String.valueOf(obj2[0]));
            if(v1>v2)
            {
                return 1;
            }
            else if(v1<v2)
            {
                return -1;
            }
            return 0;
        }
        
    }
      

  5.   

    用Collections.sort(); 没错,
    不过要用2个参数的,
    第2个参数传递一个自己写的comparator接口,用来比较实际的object[]具体的lz自己琢磨琢磨吧,很简单good luck
      

  6.   


    java.util.Arrays.sort(XX);
    Collections.sort(XX);这两个有,List 没有,所以是点不出来滴,呵呵,楼主你点辛苦了