Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java reverseOrder()不工作_Java_Sorting - Fatal编程技术网

java reverseOrder()不工作

java reverseOrder()不工作,java,sorting,Java,Sorting,我想用Java8编写一个小程序,它以相反的字典顺序打印字符列表。例如,“stack”应该变成“tskca”。我输入了以下代码: public static void main (String[] args) { String input = "abc"; char[] charArray = input.toCharArray(); List<Character> charList = new ArrayList<Character>();

我想用Java8编写一个小程序,它以相反的字典顺序打印字符列表。例如,“stack”应该变成“tskca”。我输入了以下代码:

public static void main (String[] args) {
    String input = "abc";
    char[] charArray = input.toCharArray();
    List<Character> charList = new ArrayList<Character>();
    for (char c : charArray) {
        charList.add(c);
    }
    System.out.println(charList.toString());
    charList.sort(Collections.reverseOrder());
    String output = charList.toString();
    System.out.println(input);
}
我试过了

    Collections.sort(charList, Collections.reverseOrder());

取而代之的是另一个排序行,结果相同。我查找了类似的问题,但没有发现相同的问题。我把事情搞砸了吗?

只是有点打字错误。。。改变

System.out.println(input);


我认为打印正确的字符串会有所帮助;)

如果您希望打印的是
cba
而不是
[c,b,a]
,请对每个
使用

charList.stream().forEach(System.out::print);

报价:
System.out.println(输入)旁注:java没有为基元类型提供类似比较器的接口,这非常令人恼火。另外:使用
数组更有效。排序(charArray)
,然后反转生成的数组。@TobiasWeimer不特别是;您上一次想按自然顺序(使用
Arrays.sort
)或反向自然顺序(使用
Arrays.sort
,然后反向数组)以外的任何方式对基元数组进行排序是什么时候?@AndyTurner我确实想按不区分大小写的顺序对字符进行排序。或者对于
int[]
,按它们的绝对值对它们进行排序可能是有意义的。这不是问题的全部。试着运行你的解决方案,你会发现它仍然不起作用work@bhspencer我运行了,运行得很好。谢谢!这样一个小错误。老兄,我因为这个而错过了一次面试:(:)@AndyTurner没错,但从那以后就不难了。听到这个消息我很难过。但这发生在我们中最好的人身上。我甚至不想去想我花了多少时间调试这些愚蠢的打字错误。。我建议使用intellij作为IDE。它会警告您,
输出已分配但从未使用
System.out.println(output);
System.out.println(output);
charList.stream().forEach(System.out::print);