相关疑难解决方法(0)

为什么Comparator.comparing不能与String :: toLowerCase方法引用一起使用?

我试图通过反向顺序(忽略大小写)对字符串数组进行排序,而不进行修改,只打印它.所以我使用的是Java8流.但我无法做到这一点.

这是我的尝试:

package experimentations.chapter02;

import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.Collectors;

public class StringStream {

    public static void main(String[] args) {
        sortStrings();
    }

    public static void sortStrings(){
        String[] stringsArray = "The quick brown fox has a dirty ladder".split("\\s+");
        System.out.println(
                Arrays.stream(stringsArray)
                .sorted(Comparator.comparing(String::toLowerCase).reversed())
                .collect(Collectors.toList())
        );
    }

}
Run Code Online (Sandbox Code Playgroud)

这里的问题是String::toLowerCase静态方法不接受Comparator.comparing.

同时,我设法对数组进行排序,但修改它:

public static void sortStrings(){
        String[] stringsArray = "The quick brown fox has a dirty ladder".split("\\s+");
        System.out.println(
                Arrays.stream(stringsArray)
                .map(String::toLowerCase)
                .sorted(Comparator.reverseOrder())
                .collect(Collectors.toList())
        );
}
Run Code Online (Sandbox Code Playgroud)

那么,最简​​单的解决方法是什么?

java comparator java-8 java-stream method-reference

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

comparator ×1

java ×1

java-8 ×1

java-stream ×1

method-reference ×1