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。