赞
踩
目录
一下是上述三种方法以数组第一列为数据进行排序的运行结果编辑
用Arrays.sort()对一维数组进行快排相信大家一定不陌生,但对今天给大家分享一下sort对二维数组的3种排序方式
(1)重写compare()方法
- import java.util.Arrays;
- import java.util.Comparator;
-
- public class test {
- public static void main(String[] args) {
- int[][] arr = {{1,5},{5,3},{3,34},{2,4}};
- Arrays.sort(arr, new Comparator<int[]>() {
- @Override
- public int compare(int[] o1, int[] o2) {
- return o1[0] - o2[0];//数组里面的下标为0,表示排序根据数组的第一列排序
- }
- });
-
- for (int[] arrs:arr){
- for (int n:arrs){
- System.out.print(n+" ");
- }
- System.out.println();
- }
- }
- }

(2)使用Lambda表达式的方式对Comparator比较器进行简写(JDK1.8以上可用Lambda表达式)
- import java.util.Arrays;
- import java.util.Comparator;
-
- public class test {
- public static void main(String[] args) {
- int[][] arr = {{1,5},{5,3},{3,34},{2,4}};
-
-
- Arrays.sort(arr,((o1, o2) -> {
- return o1[0]-o2[0];
- }));
- for (int[] arrs:arr){
- for (int n:arrs){
- System.out.print(n+" ");
- }
- System.out.println();
- }
- }
- }

(3)用comparingInt(a->a[index])排序
二维数组会根据第index+1(index=1或index=0)的数据进行排序
- import java.util.Arrays;
- import java.util.Comparator;
-
- public class test {
- public static void main(String[] args) {
- int[][] arr = {{1,5},{5,3},{3,34},{2,4}};
-
- Arrays.sort(arr,Comparator.comparingInt(a->a[0]));//根据二维数组的第一列数据进行比较
-
- for (int[] arrs:arr){
- for (int n:arrs){
- System.out.print(n+" ");
- }
- System.out.println();
- }
- }
- }

根据第二列数据进行排序
- import java.util.Arrays;
- import java.util.Comparator;
-
- public class test {
- public static void main(String[] args) {
- int[][] arr = {{1,5},{5,3},{3,34},{2,4}};
-
- Arrays.sort(arr,((o1, o2) -> {
- return o1[1]-o2[1];
- }));
- for (int[] arrs:arr){
- for (int n:arrs){
- System.out.print(n+" ");
- }
- System.out.println();
- }
- }
- }

运行结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。