首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Long型的数据开展排序的函数

2011-12-07 
Long型的数据进行排序的函数我想做一个对Long型的数据进行排序的函数:如下importjava.util.*publicclasst

Long型的数据进行排序的函数
我想做一个对Long型的数据进行排序的函数:如下


import   java.util.*;


public   class   test   {
public   static   void   main(String[]   arg)throws   Exception   {
Long   ary[][]={{27785727527278L,7857852544545455L},{675785785757857L,978787878787L},{378787878787L,78787877857876L},{5787878787L,878787878785L}};//测试数据
                                        //读入数据部分
sorttype   s=new   sorttype( "A ");//按A段排序
Arrays.sort(ary,s);//对二维数组排序
//创建写入对象
                                    //writetofile   file   =   new   writetofile();
for(Long[]   a:ary)   {
for(Long   i:a)  
System.out.print(i+ "| ");//测试输出
                                                                  System.out.println();

    }
  }
}

//自定义实现排列顺序
class   sort2   implements   Comparator <int[]> {
private   String   ss;
        private   int   ind=0;
        public   sort2(String   s){
        if(s== "A ")ss= "0 ";
        else   if(s== "B ")ss= "1 ";
        else   ss= "0 ";
}
       
        public   int   compare(int   a[],   int   b[])   {
        int   r;
                if(a[Integer.parseInt(ss.substring(ind,ind+1))]> b[Integer.parseInt(ss.substring(ind,ind+1))])
                r=1;
                else   if(a[Integer.parseInt(ss.substring(ind,ind+1))] <b[Integer.parseInt(ss.substring(ind,ind+1))])
                        r=-1;
                else   r=0;
                ind++;
                if(ind> =ss.length())   ind=0;
                return   r;
      }
}


提示错误:The   method   sort(T[],   Comparator <?   super   T> )   in   the   type   Arrays   is   not  
  applicable   for   the   arguments   (Long[][],   sorttype)

请问怎么改啊?


[解决办法]
The method sort(T[], Comparator <? super T> ) in the type Arrays is not
applicable for the arguments (Long[][], sorttype)

因为sort()方法的第一个对数是一维数组,而你调用的时候给的ary[][]是二维数组,当然会出错,改成一维的应该就可以了。
[解决办法]
二维数线[n][n]可以当做n个一维数组[n],每个数组的长度是n.
注意多维数组的每一维可能长度不一致。

import java.util.*;

class Cmpr implements Comparator {
public int compare(Object o1, Object o2) {


if(((Long[])o1)[0].longValue() <((Long[])o2)[0].longValue())
return 0;
else if(((Long[])o1)[0].longValue()> ((Long[])o2)[0].longValue())
return 1;
else if (((Long[])o1)[1].longValue() <((Long[])o2)[1].longValue())
return 0;
else if (((Long[])o1)[1].longValue()> ((Long[])o2)[1].longValue())
return 1;
else
return 0;
}
}

public class Check5 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Long ary[][]={{27785727527278L,7857852544545455L},
{675785785757857L,978787878787L},
{378787878787L,78787877857876L},
{5787878787L,878787878785L}};
ArrayList list=new ArrayList();
for(int i=0;i <ary.length;i++)
list.add(ary[i]);
Comparator comp = new Cmpr();
Collections.sort(list, comp);
for(int i=0;i <list.size();i++)
{
Long elems[]=(Long[])list.get(i);
for(int j=0;j <elems.length;j++)
System.out.println(elems[j]+ " ");
System.out.println();
}

}

}

热点排行
Bad Request.