Java中二维数组按字典排序(即,按第一列排序)

如题,废话少说,直接上代码:

import java.util.Arrays;
import java.util.Scanner;
public class T_17 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] a = new int[n][3];
		for (int i = 0; i < n; i++) {
			a[i][0] = sc.nextInt();
			a[i][1] = sc.nextInt();
			a[i][2] = sc.nextInt();
		}
		// 以第一列排序
		Arrays.sort(a, (e1, e2) -> e1[0] - e2[0]);
		// 这样排序二维数组会报错
		// Arrays.sort(a);
		for (int i = 0; i < n; i++) {
			System.out.printf("%d %d %d\n", a[i][0], a[i][1], a[i][2]);
		}
	}
}

结果如下:
在这里插入图片描述
还有一种方式就是转成字符串数组,然后用Arrays.sort()方法排序,但是这样还要转回来,非常麻烦。不如这样直接排序

补充:

// 按第二列排序
Arrays.sort(a, (e1, e2) -> e1[1] - e2[1]);

// 按第三列排序
Arrays.sort(a, (e1, e2) -> e1[2] - e2[2]);

// 如果要从大到小排序
Arrays.sort(a, (e1, e2) -> e2[i] - e1[i]);

猜你喜欢

转载自blog.csdn.net/Awt_FuDongLai/article/details/107895218
今日推荐