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
    ======================

  • 相关阅读:
    [luoguP2762] 太空飞行计划问题(最大权闭合图—最小割—最大流)
    [luoguP2680] 运输计划(lca + 二分 + 差分)
    [luoguP2758] 编辑距离(DP)
    [luoguP2890] [USACO07OPEN]便宜的回文Cheapest Palindrome(DP)
    Javascript对象拷贝(clone)
    使用JavaScript访问XML数据
    javascript 树形菜单
    Simple JavaScript Inheritance
    用 javascript 操作 xml
    javascript flash 弹框
  • 原文地址:https://www.cnblogs.com/kentyshang/p/805334.html
Copyright © 2011-2022 走看看