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

请教一个用JAVA实现的二维表格排序问题。。。
有一个二维表格,表格中的每一列分别有一个列名,表格中的数据为数字类型,要求编写一个程序,能够按照用户制定的列顺序以及每个列的升降序进行排序。
例如
Id age score1 score2 score3
1 20 45 56 67
3 33 12 98 100
....
7 77 33 12 91

用户可以制定按照Age(升序),score2(降序)的顺序对数据进行排序。

请教用java代码怎么写~~谢谢

------解决方案--------------------
have a try

sort(String[][] src, int col) {
if (src == null || src.length == 0) return;
if (col<0 || col>=src[0].length) return;

int len = src[0].length;
String [] tmp = new String[src[0].length];
for (int i=0; i<src.length-1; i++) {
for (int j=0; j<src.length-i-1; j++) {
if (src[j][col].compareTo(src[j+1][col]) > 0) { //这里是字符串比较,如果是数字比较,请把字符串改成数字在比较,即if (Integer,parseInt(src[j][col]).intValue() > Integer,parseInt(src[j+1][col]).intValue()) {
System.copyarray(tmp, src[j], len);
System.copyarray(src[j], src[j+1], len);
System.copyarray(src[j+1], tmp, len);
}
}
}
}

src是你要排序的二维数组,col是你要排序的列的索引,第一列是0,第二列是1,依次类推,按LZ的要求,Id列是0,Age列是1,依此类推