【发布时间】:2016-09-05 02:35:28
【问题描述】:
ArrayList<int[]> segment = new Arraylist<int[]>();
segment.add(new int[]{2,3,1});
segment.add(new int[]{2,1,1});
segment.add(new int[]{1,1,1});
segment.add(new int[]{2,4,1});
segment.add(new int[]{3,3,1});
我想要做的是根据每个数组的第一个元素对这个 ArrayLists 进行排序,如果元素相同,则根据数组/数组的第二个元素进行排序
例如上面的代码行应该修改为, (1,1,1) (2,1,1) (2,3,1) (2,4,1) (3,3,1)
这就是我目前解决这个问题的方法,
public static void SortSegment(ArrayList<int[]> segment){
Collections.sort(segment, new Comparator<int[]>() {
public int compare(int[] a, int[] b) {
return (a[0] - b[0]);
}
});
}
这段代码根据每个 int 数组的第一个元素对 int 数组的 arraylist 进行排序。 我如何修改它以适用于第一个元素相同的情况,以便考虑第二个元素?
谢谢。
【问题讨论】:
-
每个 int 数组中是否总是有 3 个元素?
-
首先检查第一个元素是否相等。如果是,请比较第二个。否则保留你所拥有的。
标签: java arrays sorting arraylist