Java Stream API 比较数组中的字符串

标签 java string filter compare java-stream

如果有人能解释为什么我不能使用 Java 中的 Stream API 比较数组中的字符串,我会很高兴。

当第一个单词按字典顺序排列在第二个单词之前时,我尝试仅过滤对。

String[] input = { "Apple", "Banana" };

    Arrays.stream(input)
            .filter( (a,b)-> a.compareTo(b)< 0 )

Java 似乎不明白,“b”是一个字符串,但为什么呢?

最佳答案

filter预计 Predicate<T> (或者更准确地说, Predicate<? super T> ),其中 TStream 的类型元素( String 在你的情况下)。

(a,b)-> a.compareTo(b)< 0不能解释为 Predicate<T> ,自 Predicateboolean test(T t)方法只接受一个参数,而不是两个。

filter应用于 Stream 的每个元素分别地。您的 Stream 中没有对.

关于Java Stream API 比较数组中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46754905/

相关文章:

java - Hibernate、WebLogic 10.3 和 JPA 2.0

java - 为java应用程序创建jar文件

从 R 中的 .sdf 文件中提取唯一字段的正则表达式

filter - 如何使用 lambda 表达式创建多个列表?

css - 实现背景过滤器 : opacity(0%) in CSS

java - AppEngine ChannelAPI 警告 : No file found for:/_ah/channel/connected/

java - Lucene - 第一次应用程序错误

c++ - 一个特定的测试用例不会以某种方式通过测试

C#:有效地搜索大字符串以查找其他字符串的出现

javascript - AngularJS : How to auto-select date