最近做题时发现有些任务需要将二维数组按照某一列进行排序
但JDK里并没有直接提供这一排序的方法
考虑自己重新写实在太麻烦(还不一定正确/高效)
百度了一番:
原地址:(https://zhidao.baidu.com/question/584126645687159005.html?qbl=relate_question_1&word=Arrays.sort%28ob%2C%20new%20Comparator%3CObject%3E%28%29%20%7B%7D%29)
import java.util.Arrays;
import java.util.Comparator;
/**
* 二维数组排序示例
* @author YY2924 2014/11/28
* @version 1.0
*/
public class MatrixSort {
public static void main(String[] args) {
//二维数组
Integer[][] matrix = new Integer[][] {
{8,7},{9,5},{6,4}
};
//排序
Arrays.sort(matrix,new Comparator() {
@Override
public int compare(Integer[] x, Integer[] y) {
if(x[0] < y[0]){
return 1;
} else if(x[0] > y[0]){
return -1;
} else {
return 0;
}
}
});
//打印
for(Integer[] integers : matrix){
System.out.println(Arrays.toString(integers));
}
}
}
(原地址http://www.cnblogs.com/whaozl/p/4061993.html)
import java.util.Arrays;
import java.util.Comparator;
public class ArraySort {
public static void sort(int[][] ob, final int[] order) {
Arrays.sort(ob, new Comparator
阅读代码中的问题:
关于代码中
关于Array,sort(arr,new Comparator
class MyComparator implements Comparator{
@Override
public int compare(UserInfo o1,UserInfo o2) {
if(o1.getAge()-o2.getAge()==0){
return o1.getUserid()-o2.getUserid();
}else{
return o1.getAge()-o2.getAge();
}
}
}