排序2D int数组JAVA
我有一个二维数组 这是一个数组,有7个整数行和更多行排序2D int数组JAVA,java,arrays,sorting,multidimensional-array,Java,Arrays,Sorting,Multidimensional Array,我有一个二维数组 这是一个数组,有7个整数行和更多行 int[][] new arr=new[7][100]; 该行中的数字已排序 我需要一个排序数组 比如说 9 4 15 22 32 47 50 1 5 9 12 19 25 36 22 23 25 29 36 55 99 1 5 11 12 19 25 36 排序后 1 5 9 12 19 25 36 1 5 11 12 19 25 36 9 4 15 22 32 47 50 22 23 25 29 36 55 99 解决此问题的简单方
int[][] new arr=new[7][100];
该行中的数字已排序
我需要一个排序数组
比如说
9 4 15 22 32 47 50
1 5 9 12 19 25 36
22 23 25 29 36 55 99
1 5 11 12 19 25 36
排序后
1 5 9 12 19 25 36
1 5 11 12 19 25 36
9 4 15 22 32 47 50
22 23 25 29 36 55 99
解决此问题的简单方法是将二维数组转换为一维数组列表
List<int[]> list = new ArrayList<int[]>();
// add logic to transform your 2D array here
List List=new ArrayList();
//在此处添加逻辑以变换二维阵列
然后可以将Collections.sort()与自定义比较器函数一起使用
Collections.sort(list, new Comparator<int[]>() {
public int compare(int []a,int []b) {
for(int i=0;i<6;i++)
if(a[i]!=b[i]) return a[i]-b[i];
return a[6] - b[6];
}
});
Collections.sort(列表,新比较器(){
公共整数比较(整数[]a,整数[]b){
对于(int i=0;i我会做类似的事情,或者类似的事情:
我在堆栈溢出中看到了类似的情况:
double[][]数组={
{1, 5},
{13, 1.55},
{12, 100.6},
{12.1, .85} };
sort(数组,新的java.util.Comparator(){
公共整数比较(双[]a,双[]b){
返回Double.compare(a[0],b[0]);
}
});
我不知道如何在我的程序中使用这段代码。当我有int[]]时,如何使用arraylist我把这部分留给你练习:)。你也可以不使用arraylist,而是将它作为数组,并用数组对它进行排序。排序。你只需先将你的int[7][100]
转换为int[100][7]
好的,我有int[]]新的arr[100][7]现在怎么办?Collections.sort
也只适用于一维集合。不过没关系。只需使用示例中的比较器即可。您可能希望首先转置数组,使每个元素都是一行(即int[100][7]而不是int[7][100])。下面是一个示例
double[][] array= {
{1, 5},
{13, 1.55},
{12, 100.6},
{12.1, .85} };
java.util.Arrays.sort(array, new java.util.Comparator<double[]>() {
public int compare(double[] a, double[] b) {
return Double.compare(a[0], b[0]);
}
});