zoukankan      html  css  js  c++  java
  • 二维数组排序

    二维数组排序实例:

    import java.util.*;
    public class TwoDimArrayTest {
    public static void main(String[] args) {
    String[][] arr = {{"B","Z","K"},
    {"C","X","L"},
    {"A","Y","M"}} ;
    //缺省(按0列升序)
    Arrays.sort(arr, new TwoDimArrayComparator());
    printArray(arr);
    //按0列降序
    Arrays.sort(arr, new TwoDimArrayComparator(0,-1));
    printArray(arr);
    //按1列升序
    Arrays.sort(arr, new TwoDimArrayComparator(1));
    printArray(arr);
    //按1列降序
    Arrays.sort(arr, new TwoDimArrayComparator(1,-1));
    printArray(arr);
    //按2列升序
    Arrays.sort(arr, new TwoDimArrayComparator(2));
    printArray(arr);
    //按2列降序
    Arrays.sort(arr, new TwoDimArrayComparator(2,-1));
    printArray(arr);
    }
    public static void printArray(String[][] arr) {
    for (int i= 0; i< arr.length ; i++) {
    for (int j = 0; j < arr[i].length; j++) {
    System.out.print(arr[i][j] +"\t");
    }
    System.out.println();
    }
    System.out.println("======================");
    }
    }
    
    class TwoDimArrayComparator implements Comparator{
    private int keyColumn = 0;
    private int sortOrder = 1;
    public TwoDimArrayComparator () {}
    public TwoDimArrayComparator (int keyColumn) {
    this.keyColumn = keyColumn;
    }
    public TwoDimArrayComparator (int keyColumn,int sortOrder) {
    this.keyColumn = keyColumn;
    this.sortOrder = sortOrder;
    }
    public int compare(Object a, Object b) {
    if (a instanceof String[]) {
    return sortOrder * ((String[])a)[keyColumn].compareTo(((String[])b)[keyColumn]);
    } else if (a instanceof int[]){
    return sortOrder * (((int[])a)[keyColumn] - ((int[])b)[keyColumn]);
    } else {
    return 0;
    }
    }
    }

    运行结果:

    C:\java>java TwoDimArrayTest
    A Y M
    B Z K
    C X L
    ======================
    C X L
    B Z K
    A Y M
    ======================
    C X L
    A Y M
    B Z K
    ======================
    B Z K
    A Y M
    C X L
    ======================
    B Z K
    C X L
    A Y M
    ======================
    A Y M
    C X L
    B Z K
    ======================

  • 相关阅读:
    洛谷P5173 传球(暴力)
    uoj#402. 【CTSC2018】混合果汁(主席树+二分)
    uoj#401. 【CTSC2018】青蕈领主(分治FFT)
    uoj#400. 【CTSC2018】暴力写挂(边分治)
    uoj#399. 【CTSC2018】假面(概率期望)
    P4769 [NOI2018]冒泡排序(dp)
    洛谷P3688/uoj#291. [ZJOI2017]树状数组
    uoj#290. 【ZJOI2017】仙人掌(数数+仙人掌+树形dp)
    Git环境部署
    mysql修改密码
  • 原文地址:https://www.cnblogs.com/kentyshang/p/805334.html
Copyright © 2011-2022 走看看