是否有一种方法来排序多维对象?
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;
我想使用第一组数字(可计数表[x]或日期表[x])进行排序。我可以得到一个多维字符串排序没有问题,但这些我有麻烦。
int型数组的排序是通过使用Integer对象和比较器完成的,类似于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]);
}
});
然而,从你的评论中,你似乎表明你会有一个5x12的对象数组,其中穿插着字符串和整数,它们彼此不相关(排序失去了你的项目之间的任何连接,这就是让我这样想的原因),你似乎正在合并成一个多维数组,而不是单独的列表(这就是我可能会怎么去)。
如果要转换为int型/字符串的List,则使用以下命令对它们进行排序,在本例中,显示int型版本:
List<Integer> myList = new ArrayList<Integer>();
myList.add(2);
myList.add(1);
Collections.sort(myList);
System.out.println("myList is: " + myList);