Java 如何使用基元类型按描述顺序排序? 我的处境

Java 如何使用基元类型按描述顺序排序? 我的处境,java,Java,我有一个原始类型的数据结构,即int[][]数字我想按描述顺序排序 反向阵列 是的,我通过如下方式将数组转换为列表来实现:Collections.reverse(Arrays.asList(array)) 但目的是什么?我把它颠倒过来了,好吧,现在我通过这样做对它进行排序:Arrays.sort(array[I]) 然后…喷魔法。我只有ASC订单,没有DESC 还有别的办法吗 谢谢 这样做之后,我的结果是:(很明显,结果是不正确的) 应该是: 11111222333355555556678889

我有一个原始类型的数据结构,即
int[][]数字
我想按描述顺序排序

反向阵列 是的,我通过如下方式将数组转换为列表来实现:
Collections.reverse(Arrays.asList(array))
但目的是什么?我把它颠倒过来了,好吧,现在我通过这样做对它进行排序:
Arrays.sort(array[I])

然后…喷魔法。我只有ASC订单,没有DESC

还有别的办法吗

谢谢

这样做之后,我的结果是:(很明显,结果是不正确的)

应该是:

111112223333555555566788899
888
**77765555443322**
--- and so on..
编辑: 我尝试使用comparator,在这种情况下使用它似乎是做错了什么。因为通常它对我很有效。但是现在

  Arrays.sort(arrInt[i],new Comparator<Integer>(){

                @Override
                public int compare(Integer o1, Integer o2) {
                    return o2.compareTo(o1);
                }

            });
        }
Arrays.sort(arrInt[i],新的比较器(){
@凌驾
公共整数比较(整数o1,整数o2){
返回o2.compareTo(o1);
}
});
}

然后我使用int的包装类,comparator适合我。

也许这个任务需要为您自己实现排序算法?;-) 如果仍要使用
数组
类,可以使用
比较器实现
排序

sort(T[] a, Comparator<? super T> c)

也许它会对你有所帮助。

你有多种选择:

  • 用于在排序后调用
    ArrayUtils.reverse(数组)
  • 使用
    System.arraycopy
    反向复制到新阵列中
  • 将数组转换为
    整数[]
    并实现自定义
    比较器
    然后
    数组。排序(数组,新的ReverseIntegerComparator())

    公共类ReverseIntegerComparator实现Comparator{
    @凌驾
    公共整数比较(整数第一,整数第二){
    返回第二个。比较(第一个);
    }
    }
    

另外,请确保您需要一个
int[][]
。您的问题意味着您只需要
int[]
。但是无论哪种方式,一旦你到达
int[]
,你可以使用这些选项中的任何一个,可能还有许多其他选项。

你发布的代码将在位置i对数组进行排序,但不会对包含所有数组的大数组进行排序。要做到这一点,首先对每个整数数组进行排序(如果不需要对其进行排序,则只需找到其最大值),然后执行以下操作

Arrays.sort(arrInt,new Comparator<Integer[]>(){
        @Override
        public int compare(Integer[] o1, Integer[] o2) {
            return o2[0].compareTo(o1[0]);
        }
    });
}
Arrays.sort(arrInt,新的比较器(){
@凌驾
公共整数比较(整数[]o1,整数[]o2){
返回o2[0]。比较(o1[0]);
}
});
}

那么每个
int[]
代表一个数字的位数?为什么不使用
biginger[]
而不是
int[][]
?据我所知,每个数组[I]都代表我的数组[I][]行,因为我想用这些数字执行一些操作。所以我需要它彼此分开。首先对反转进行评论,然后排序。。。如果要反转排序结果,请在排序后反转…:-)这毫无意义。我试过了。我将在编辑范围内发布我的代码。该任务不需要任何东西,仅用于练习目的。我用comparator做的,它似乎不起作用。我将用这个代码编辑我的帖子。如果我有一个整数,它就会工作。很遗憾,但我有int。在这种情况下,它是有意义的;我只需要在位置排序,因为我的索引是偶数,我按asc顺序排序,反之亦然;你应该更新你的问题,以明确这个意图,因为它不是。另外,检查你的英语;这需要一点思考才能明白你的意思。
Arrays.sort(a, Collections.reverseOrder());
public class ReverseIntegerComparator implements Comparator<Integer> {

    @Override
    public int compare(Integer first, Integer second) {
        return second.compareTo(first);
    }
}
Arrays.sort(arrInt,new Comparator<Integer[]>(){
        @Override
        public int compare(Integer[] o1, Integer[] o2) {
            return o2[0].compareTo(o1[0]);
        }
    });
}