当前位置:   article > 正文

Java中二维数组排序_java二维数组排序

java二维数组排序

方法一:重写Arrays.sort()的比较器——匿名内部类

 

  1. import java.util.Arrays;
  2. import java.util.Comparator;
  3. public class Sort {
  4. public static int[][] mySort(int[][] array){
  5. // 新建一个比较器Comparator作为匿名内部类
  6. Arrays.sort(array, new Comparator<int[]>() {
  7. @Override
  8. //重写其中的compare比较方法,return的结果是int类型,1-2表示递增,2-1表示递减
  9. public int compare(int[] o1, int[] o2) {
  10. if(o1[0] == o2[0]){
  11. // 若俩数组的第一个元素相等,则比较它们的第二个元素
  12. return o1[1] - o2[1];
  13. }else {
  14. // 若俩数组的第一个元素不相等,则按从小到大的顺序排列
  15. return o1[0] - o2[0];
  16. }
  17. }
  18. });
  19. return array;
  20. }
  21. public static void main(String[] args){
  22. // 输入测试数据
  23. int[][] arr = new int[][]{{1,3},{2,4}, {2,6},{8,10},{8,18}, {15,18}};
  24. int[][] sorted = mySort(arr);
  25. // 输出测试结果
  26. for(int[] a : sorted){
  27. System.out.println(a[0] + "," + a[1]);
  28. }
  29. }
  30. }

方法二:重写Arrays.sort()的比较器——lambda表达式

  1. import java.util.Arrays;
  2. public class Sort {
  3. public static int[][] mySort(int[][] array){
  4. //lArrays.sort(array, (arr1, arr2) -> arr1[0] - arr2[0]);
  5. Arrays.sort(array, (arr1, arr2) -> arr1[0] == arr2[0] ? arr1[1] - arr2[1] : arr1[0] - arr2[0]);
  6. return array;
  7. }
  8. public static void main(String[] args){
  9. int[][] arr = new int[][]{{1,3},{2,4}, {2,6},{8,10},{8,18}, {15,18}};
  10. int[][] sorted = mySort(arr);
  11. for(int[] a : sorted){
  12. System.out.println(a[0] + "," + a[1]);
  13. }
  14. }
  15. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/462097
推荐阅读
相关标签
  

闽ICP备14008679号