赞
踩
方法一:重写Arrays.sort()的比较器——匿名内部类
- import java.util.Arrays;
- import java.util.Comparator;
-
- public class Sort {
- public static int[][] mySort(int[][] array){
- // 新建一个比较器Comparator作为匿名内部类
- Arrays.sort(array, new Comparator<int[]>() {
- @Override
- //重写其中的compare比较方法,return的结果是int类型,1-2表示递增,2-1表示递减
- public int compare(int[] o1, int[] o2) {
- if(o1[0] == o2[0]){
- // 若俩数组的第一个元素相等,则比较它们的第二个元素
- return o1[1] - o2[1];
- }else {
- // 若俩数组的第一个元素不相等,则按从小到大的顺序排列
- return o1[0] - o2[0];
- }
- }
- });
- return array;
- }
- public static void main(String[] args){
- // 输入测试数据
- int[][] arr = new int[][]{{1,3},{2,4}, {2,6},{8,10},{8,18}, {15,18}};
- int[][] sorted = mySort(arr);
- // 输出测试结果
- for(int[] a : sorted){
- System.out.println(a[0] + "," + a[1]);
- }
- }
- }
方法二:重写Arrays.sort()的比较器——lambda表达式
- import java.util.Arrays;
-
- public class Sort {
- public static int[][] mySort(int[][] array){
- //lArrays.sort(array, (arr1, arr2) -> arr1[0] - arr2[0]);
- Arrays.sort(array, (arr1, arr2) -> arr1[0] == arr2[0] ? arr1[1] - arr2[1] : arr1[0] - arr2[0]);
- return array;
- }
- public static void main(String[] args){
- int[][] arr = new int[][]{{1,3},{2,4}, {2,6},{8,10},{8,18}, {15,18}};
- int[][] sorted = mySort(arr);
- for(int[] a : sorted){
- System.out.println(a[0] + "," + a[1]);
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。