免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1015 | 回复: 0
打印 上一主题 下一主题

二维数组排序实例 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-22 23:36 |只看该作者 |倒序浏览
import java.util.*;
public class Main {
public static void main(String[] args) {
  String[][] arr = {{"B","啊","20%"},
  {"C","中","12%"},
  {"A","我","55%"}} ;
  //缺省(按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
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;
            }
     }
}


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12056/showart_365683.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP