我想要按Object[][]
s组成的第一列对int
进行排序。
举例来说,这是array
:
Object[][] array = {{1, false, false}, {2, true, false}, {0, true, true}};
现在,我想创建一个新的array
,其行的排序方式是每行的第一个元素上升:
Object[][] newArray = ...;
System.out.println(Arrays.deepToString(newArray));
应该打印什么:{{0, true, true}, {1, false, false}, {2, true, false}}
谢谢。
答案 0 :(得分:4)
Arrays.sort(array, new Comparator<Object[]>() {
@Override
public int compare(Object[] o1, Object[] o2) {
Integer i1 = (Integer) (o1[0]);
Integer i2 = (Integer) (o2[0]);
return i1.compareTo(i2);
}
});
答案 1 :(得分:0)
您可以使用自定义比较器使用Array.sort方法,如下所示
Arrays.sort(array, new Comparator<Object[]>() {
@Override
public int compare(Object []o1, Object []o2) {
return (Integer)o1[0] - (Integer)o2[0];
}
});