Pen*_*ski 2 java string compare filter java-stream
如果有人能解释为什么我不能使用Java中的Stream API来比较数组中的String,我将很高兴.
我试图在第一个单词按字典顺序排在第二个单词之前仅过滤对.
String[] input = { "Apple", "Banana" };
Arrays.stream(input)
.filter( (a,b)-> a.compareTo(b)< 0 )
Run Code Online (Sandbox Code Playgroud)
看来Java不明白,"b"是一个字符串,但为什么呢?
filter期望a Predicate<T>(或更确切地说,Predicate<? super T>),元素T的类型Stream(String在您的情况下).
(a,b)-> a.compareTo(b)< 0不能解释为a Predicate<T>,因为Predicate's boolean test(T t)方法只需要一个参数,而不是两个.
filterStream单独应用于每个元素.你的没有配对Stream.
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |