我想反转一个 char 数组,为啥在使用 Arrays.sort(arr, Collections.reverseOrder()) 时它会失败? [复制]
Posted
技术标签:
【中文标题】我想反转一个 char 数组,为啥在使用 Arrays.sort(arr, Collections.reverseOrder()) 时它会失败? [复制]【英文标题】:I would like to reverse a char array, why it fails when using Arrays.sort(arr, Collections.reverseOrder())? [duplicate]我想反转一个 char 数组,为什么在使用 Arrays.sort(arr, Collections.reverseOrder()) 时它会失败? [复制] 【发布时间】:2021-12-24 07:40:38 【问题描述】:如果我反转一个字符串数组,它在使用时可以正常工作
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());
【问题讨论】:
【参考方案1】:你有一个原语数组。 char
是一个原语。 Collections.sort()
处理对象集合。
要解决问题,请这样做...
Character[] arr = new Character[]'a','b','c';
Arrays.sort(arr, Collections.reverseOrder());
不要使用原始类型,而是使用它的包装类型,它是一个对象。然后,一切都会正常进行。
【讨论】:
【参考方案2】:Collections.reverseOrder() 不适用于 java 中的原始类型,例如 char 类型。
您需要对其进行排序,然后使用 for 循环或将字符放入字符串等进行反转。
【讨论】:
以上是关于我想反转一个 char 数组,为啥在使用 Arrays.sort(arr, Collections.reverseOrder()) 时它会失败? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何从 C++ 中的 char 指针初始化 char 数组?
为啥我不能使用 `section .data:` 和 `section .text:` 在 C 中创建一个长度超过 61 个字符的 char 数组? [复制]