对二维数组排序
来源:互联网 发布:ce5..4源码 编辑:程序博客网 时间:2024/04/30 07:42
代码如下:
package com.hs.jp.lys;
import java.util.Arrays;
import java.util.Comparator;
/** *//**
* GroupBy
* @author linys
* @extends ArraysComparator
* @E-mail tolys@126.com
* @version 1.0
*/
public class GroupBy extends ArraysComparator...{
public GroupBy(Object[][] array )...{
Arrays.sort(array, new ArraysComparator());
}
public GroupBy(Object[][] array ,int keyColumn,int sortOrder )...{
Arrays.sort(array, new ArraysComparator(keyColumn,sortOrder));
}
public GroupBy(Object[][] array ,int keyColumn)...{
Arrays.sort(array, new ArraysComparator(keyColumn));
}
}
class ArraysComparator implements Comparator ...{
//设置缺省列
private int column = 0;
//设置缺省排序方式 (1:升序 -1:降序)
private int orderFlag = 1;
public ArraysComparator() ...{
}
public ArraysComparator(int column) ...{
this.column = column;
}
public ArraysComparator(int column, int orderFlag) ...{
this.column = column;
this.orderFlag = orderFlag;
}
public int compare(Object objOne, Object objTwo) ...{
if (objOne instanceof String[]) ...{
return orderFlag * ((String[]) objOne)[column].compareTo(((String[]) objTwo)[column]);
} else if (objOne instanceof int[]) ...{
return orderFlag * (((int[]) objOne)[column] - ((int[]) objTwo)[column]);
} else ...{
return 0;
}
}
}
Test Case:
package com.hs.jp.lys;
/** *//**
* TestGroupBy
* @author linys
*
*/
public class TestGroupBy ...{
/** *//**
* @param args
*/
public static void main(String[] args) ...{
String[][] arr = ...{
...{ "1", "A", "N" },
...{ "2", "O", "B" },
...{ "3", "P", "A" }
};
// 缺省(按0列升序)
new GroupBy(arr);
printResult(arr);
// 按0列降序
new GroupBy(arr,0,-1);
printResult(arr);
}
public static void printResult(Object[][] arr) ...{
for (int i = 0; i < arr.length; i++) ...{
for (int j = 0; j < arr[i].length; j++) ...{
System.out.print(arr[i][j] + " ");
}
System.out.println(" ");
}
System.out.println("======BY tolys====== ");
}
}
/** *//**
* TestGroupBy
* @author linys
*
*/
public class TestGroupBy ...{
/** *//**
* @param args
*/
public static void main(String[] args) ...{
String[][] arr = ...{
...{ "1", "A", "N" },
...{ "2", "O", "B" },
...{ "3", "P", "A" }
};
// 缺省(按0列升序)
new GroupBy(arr);
printResult(arr);
// 按0列降序
new GroupBy(arr,0,-1);
printResult(arr);
}
public static void printResult(Object[][] arr) ...{
for (int i = 0; i < arr.length; i++) ...{
for (int j = 0; j < arr[i].length; j++) ...{
System.out.print(arr[i][j] + " ");
}
System.out.println(" ");
}
System.out.println("======BY tolys====== ");
}
}
- 对二维数组排序
- 对php二维数组排序
- 一行代码对二维数组排序
- qsort对二维数组的排序
- sort对二维字符数组排序
- 按某元素对二维数组排序
- php对二维数组进行排序
- php自定义对二维数组进行排序
- qsort对动态二维数组进行排序
- php对二维数组进行排序
- 用sort对二维数组排序
- sort对二维数组进行排序备忘
- 对一个二维数组进行冒排序
- sort对二维char数组排序?
- sort对二维字符数组排序
- 对php中的二维数组进行排序
- 对一个二维数组中的数据排序
- 如何对二维数组进行排序
- SQL-如何提高select语句的效率 (转载)
- 初学者入门:如何随心所欲操纵java数组
- T-SQL-嵌套查询 (转载)
- C语言中遇到的两个问题!
- SQL-联接查询 (转载)
- 对二维数组排序
- 被误解的C++——汉尼拔
- JBoss Seam:一个深度集成框架(二)
- Facebook开放平台程序代码 出招反将Google一军
- php5.2 ajax+apc实现上传进度条 失败 经历
- 百度华为共建联合实验室 研制网络计算平台
- 浅谈javascript函数劫持
- SQL-select下的四个重要子句用法 (转载)
- CISCO SCE - 转帖