java实现二维数组自定义排序

	/*
     *   实现按第二个数升序   第一个数降序排序
	 */
	public static void main(String[] args) {
		int[][] nums = {{1,3},{2,5},{6,2},{0,-1},{0,5}};
		
		// 方法一
		/*
		Arrays.sort(nums,new Comparator<int[]>() {

			@Override
			public int compare(int[] a, int[] b) {  // 重写方法
				if(a[1] == b[1]) {
					return a[1] - b[0];
				} else {
					return a[1] - b[1];
				}
			}
			
		});
        // 输出二维数组
		System.out.println(Arrays.deepToString(nums)); // [[0, -1], [6, 2], [1, 3], [2, 5], [0, 5]]
		*/
		
		// 方法二
		Arrays.sort(nums,(a,b)->a[1]==b[1]?b[0]-a[0]:a[1]-b[1]);
		System.out.println(Arrays.deepToString(nums));		//[[0, -1], [6, 2], [1, 3], [2, 5], [0, 5]]
	}
举个栗子
		// 对学生信息进行自定义排序
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入学生个数:");
		int n = scan.nextInt();
		String[][] nums = new String[n][2];
		for(int i=0;i<n;i++) {
			nums[i][0] = scan.next(); // 姓名
			nums[i][1] = scan.next(); // 成绩
		}
		Arrays.sort(nums,(a,b)->b[1].compareTo(a[1])); 
		System.out.println(Arrays.deepToString(nums)); // 降序排序
请输入学生个数:
3
yang 78
wang 89
liu 98

下面是输出结果:
[[liu, 98], [wang, 89], [yang, 78]]
全部评论

相关推荐

09-14 17:23
门头沟学院
故事和酒66:所以说副业很重要,程序员干到40岁,再怎么也赚300万了,吃吃利息也够活下去
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务