二维数组升序排列

来源:互联网 发布:电影数据库设计 编辑:程序博客网 时间:2024/05/14 19:13
package tao.leetcode;import java.util.*;/** * Created by Tao on 2017/7/30. */public class MyLeetcode {    public static void main(String[] args) {        int[][] people = {{7,0}, {4,4}, {7,1}, {5,0}, {6,1}, {5,2}};        final int[] arOrders = {1,0};        Arrays.sort(people, new Comparator<Object>() {            public int compare(Object oObjectA, Object oObjectB) {                int[] arTempOne = (int[])oObjectA;                int[] arTempTwo = (int[])oObjectB;                for (int i = 0; i < arOrders.length; i++) {                    int k = arOrders[i];                    if (arTempOne[k] > arTempTwo[k]) {                        return 1;                    }                    else if (arTempOne[k] < arTempTwo[k]) {                        return -1;                    }                    else {                        continue;                    }                }                return 0;            }        });        for (int i = 0; i < people.length; i++) {            for (int j = 0; j < people[0].length; j++) {                System.out.print(people[i][j] + " ");            }            System.out.println();        }    }}

output:
5 0
7 0
6 1
7 1
5 2
4 4
其中arOrders[]控制排序列的顺序

        Arrays.sort(people, new Comparator<int[]>() {            public int compare(int[] a, int[] b) {                if (b[0] == a[0]) return a[1] - b[1]; //第二列由大到小排列                return b[0] - a[0]; ////第一列由大到小排列            }        }`
阅读全文
0 0
原创粉丝点击