日期:2014-05-20  浏览次数:20701 次

将java翻译成c#.net
给二维数组排序  
  下载源代码 
 


〖 作者:bernardvai 〗〖 大小:1k 〗〖 发布日期:2006-12-20 〗〖 浏览:0 〗
 
二维数组排序实例:

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

 


------解决方案--------------------
关注