二维数组的排序
来源:互联网 发布:刘青云演技知乎 编辑:程序博客网 时间:2024/04/30 07:13
/** *//**
*排序辅助类TwoDimArrayComparator
**/
import java.util.Comparator;
public 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;
}
}
}
/** *//**
*测试类
**/
import java.util.Arrays;
public class Test ...{
@SuppressWarnings("unchecked")
public void test()...{
String [][] s1 =...{...{"张三","语文","80"},
...{"李四","语文","80"},
...{"王五","语文","80"},
...{"张三","数学","80"},
...{"李四","数学","80"}
};
Arrays.sort(s1, new TwoDimArrayComparator());
printArray(s1);
}
//打印二维数组方法
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] +" ");
}
System.out.println();
}
System.out.println("======================");
}
public static void main(String[] args) ...{
new Test().test();
}
}
*排序辅助类TwoDimArrayComparator
**/
import java.util.Comparator;
public 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;
}
}
}
/** *//**
*测试类
**/
import java.util.Arrays;
public class Test ...{
@SuppressWarnings("unchecked")
public void test()...{
String [][] s1 =...{...{"张三","语文","80"},
...{"李四","语文","80"},
...{"王五","语文","80"},
...{"张三","数学","80"},
...{"李四","数学","80"}
};
Arrays.sort(s1, new TwoDimArrayComparator());
printArray(s1);
}
//打印二维数组方法
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] +" ");
}
System.out.println();
}
System.out.println("======================");
}
public static void main(String[] args) ...{
new Test().test();
}
}
运行结果:
张三 数学 80
李四 语文 80
李四 数学 80
王五 语文 80
======================
- 二维数组的排序
- 二维数组的排序
- 二维数组的排序
- 二维数组的排序
- 二维数组的排序
- 二维数组的排序
- 二维数组的排序
- 二维数组的列排序
- 一个二维数组的排序
- 一个二维数组的排序
- js 二维数组的排序
- 二维数组的列排序
- 二维数组的列排序
- 二维数组的列排序
- 二维数组的列排序
- 二维数组的选择排序
- 二维数组的冒泡排序
- 二维数组的列排序
- 早起读英语
- 可以crack大部分企业级无线网络的新工具
- JSF 1.2 and Tomcat 6.0.16, error parsing 'jsf-ri-runtime.xml' 的错误处理
- proteus6.9及6.9以上版本联调文件
- asp.net cookie
- 二维数组的排序
- 哎
- tomcat提示错误信息
- Proteus与Keil联调
- java二分查找
- JS遍历所有以TextBox_开头匹配的文本框并检查是否为数字
- 多字段模糊匹配关键字查询
- session-JSP下实现防止重复在线,统计在线人数的办法
- [转]亲密接触VC6.0编译器