Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android对多维对象或int数组进行排序_Android_Sorting_Object_Multidimensional Array_Int - Fatal编程技术网

Android对多维对象或int数组进行排序

Android对多维对象或int数组进行排序,android,sorting,object,multidimensional-array,int,Android,Sorting,Object,Multidimensional Array,Int,有没有办法对多维对象进行排序 Object[][] datetable= new Object[2][2]; datetable[0][0] = 2; datetable[0][1] = "Name2"; datetable[1][0] = 1; datetable[1][1] = "Name1"; 如果不是,我将如何对多维int数组排序 int[][] numtable= new int[2][2]; numtable[0][0] = 2;

有没有办法对多维对象进行排序

Object[][] datetable= new Object[2][2];

    datetable[0][0] = 2;
    datetable[0][1] = "Name2";
    datetable[1][0] = 1;
    datetable[1][1] = "Name1";
如果不是,我将如何对多维int数组排序

int[][] numtable= new int[2][2];

    numtable[0][0] = 2;
    numtable[0][1] = 20;
    numtable[1][0] = 1;
    numtable[1][1] = 10;
我想使用第一组数字(numbtable[x]或datetable[x])对其进行排序
我可以得到一个多维字符串来排序,这没有问题,但是我遇到了问题。

int的数组排序是通过使用整数对象和比较器来完成的,类似于hotveryspicy的答案,如下所示:

Integer[][] numtable = new Integer[2][2];
numtable[0][0] = 2;
numtable[0][1] = 20;
numtable[1][0] = 1;
numtable[1][1] = 10;

Arrays.sort(numtable, new Comparator<Integer[]>() {
    @Override
    public int compare(Integer[] int1, Integer[] int2) {
        return int1[0].compareTo(int2[0]);
    }

});
Integer[][]numtable=新整数[2][2];
可数[0][0]=2;
可数[0][1]=20;
numtable[1][0]=1;
可数[1][1]=10;
sort(numtable,新的Comparator(){
@凌驾
公共整数比较(整数[]整数1,整数[]整数2){
返回int1[0]。比较(int2[0]);
}
});
然而,从您的评论中,您似乎表明您将有一个5x12对象数组,其中散布着相互不相关的字符串和整数(排序会丢失项目之间的任何连接,这使我想到这一点),您似乎将其合并到一个多维数组中,而不是单独的列表中(我可能会这样做)

如果确实转换为int/字符串列表,则使用以下方法对其进行排序,在本例中,我显示int版本:

List<Integer> myList = new ArrayList<Integer>();
myList.add(2);
myList.add(1);
Collections.sort(myList);
System.out.println("myList is: " + myList);
List myList=new ArrayList();
添加(2);
添加(1);
Collections.sort(myList);
System.out.println(“myList是:“+myList”);

使用多维数组有什么原因吗?看起来您只是简单地使用1,2,…值作为实际数据值的键,在这种情况下,为什么不使用
映射或简单的
列表
并使用
集合。排序(列表)
树状图定义中您自己的
比较器
。您使用数组的目的是什么?从您的数据中我不清楚您试图做什么。实际数组的大小将为[5][12],同时包含int和string…如果我不能让它工作,我将不得不创建两个单独的数组,一个用于int,一个用于string…但我不知道如何排序和int arrayThanks。5x12数组将用于保存数据(12)对于5个项目。从我搜索过的源代码中,对象是唯一可以同时保存int和string但不可排序的数组。因此,我将使用2个单独的数组。在使用第一个变量排序时,5x8表示int,5x4表示string。