排序用法(Arrays.sort)
-
排序范围:
- 对
res
数组中索引从 0到4 的行进行排序(因为结束索引5不包含) - 相当于排序
res[0]
到res[4]
这5行
- 对
-
比较规则:
o1
和o2
是二维数组中的两行(如[8,2]
和[6,7]
)o1[0] - o2[0]
表示按每行的第1列(索引0)的值进行升序排序
-
排序结果:
- 当
o1[0] - o2[0]
为负数 →o1
排在o2
前面 - 当结果为正数 →
o1
排在o2
后面 - 为零时保持原顺序
- 当
一维数组用法:
import java.util.Arrays;public class test01 {public static void main(String[] args) {Integer[] res = new Integer[]{8, 2, 6, 7, 1, 2, 16, 7, 2, 9};Arrays.sort(res,0,10,(o1,o2) -> o2 - o1);for(int i=0;i<res.length;i++){System.out.print(res[i]+" ");}}
}
多维数组用法:
利用附
着数进行排序
import java.util.Arrays;public class test01 {public static void main(String[] args) {int[][] res=new int[][]{{8,2},{6,7},{1,2},{16,7},{2,9}};//2 9 7 2 7//Arrays.sort(res,0,5,(o1,o2) -> o1[0] - o2[0]);//这里的(0,5)是指不包含最后一个元素其实是0到4Arrays.sort(res,0,5,(o1,o2) -> o1[0] - o2[0]);for(int i=0;i<res.length;i++){System.out.print(res[i][1]+" ");}}
}
原数列:
[[8, 2], // res[0][6, 7], // res[1][1, 2], // res[2][16,7], // res[3][2, 9] // res[4]
]
结果数列:
[[1, 2], // 原 [1,2] 移动到首位[2, 9], // 原 [2,9] [6, 7], // 原 [6,7][8, 2], // 原 [8,2][16,7] // 原 [16,7]
]