我有一个数组和一个流,如下所示。
String[] names = {"Alex", "Anna", "Abhi", "Some", "Broad", "Dustin",
"amanda", "Hanna", "Steve", "Sydney"};
Stream.of(names)
.sorted()
.map(String::toLowerCase)
.filter(x -> x.startsWith("a"))
.forEachOrdered(System.out::println);
//I have also tried - .forEach(System.out::println);
实际输出:abhi
alex
anna
amanda
预期输出:abhi
alex
amanda
anna
我在这里缺少什么?
最佳答案
您首先进行排序,然后才应用 toLowerCase
在元素上,以及自 Anna
有资本A
之前会来amanda
.
请改为执行以下操作:
Stream.of(names)
.map(String::toLowerCase)
.filter(x -> x.startsWith("a"))
.sorted()
.forEachOrdered(System.out::println);
输出:abhi
alex
amanda
anna
关于java - Stream sorted() 导致意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65797813/