Java:通过first(int filled)列对2D数组进行排序

时间:2014-09-11 13:33:04

标签: java arrays sorting

我想要按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}}

谢谢。

2 个答案:

答案 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];
       }
});