我想反转一个字符数组,为什么在使用 Arrays.sort(arr, Collections.reverseOrder()) 时会失败?

I would like to reverse a char array, why it fails when using Arrays.sort(arr, Collections.reverseOrder())?

如果我反转一个字符串数组,它在使用时工作正常 Arrays.sort(arr, Collections.reverseOrder()) 但为什么它不适用于 char 数组?

public static void main(String[] args) {
    String[] temp = new String[] {"ab","aa","ac"};
    Arrays.sort(temp, Collections.reverseOrder());
            
    char[] arr = new char[]{'a','b','c'};
    Arrays.sort(arr, Collections.reverseOrder());
}

Collections.reverseOrder() 不适用于 java 中的原始类型,例如 char 类型。

您需要对其进行排序,然后使用 for 循环反转或将字符放入字符串等。

你有一个基元数组。 char 是原语。 Collections.sort() 适用于对象集合。

要解决问题,请这样做...

 Character[] arr = new Character[]{'a','b','c'};
 Arrays.sort(arr, Collections.reverseOrder());

不要使用原始类型,而是使用它的包装类型,它是一个对象。然后,一切正常。