har*_*814 4 java lambda java-8 java-stream
我有代码:
static void doSmth() {
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < 30; i++) {
list.add(String.valueOf(i));
}
list.stream().filter("1329"::contains).map(s -> s + "a").forEach(System.out::println);
}
Run Code Online (Sandbox Code Playgroud)
为什么我得到:
1a
2a
3a
9a
13a
29a
Run Code Online (Sandbox Code Playgroud)
我期望输出为空,因为列表不包含“ 1329”。
YCF*_*F_L 10
因为
.filter("1329"::contains)
Run Code Online (Sandbox Code Playgroud)
意思
.filter(s -> "1329".contains(s))
Run Code Online (Sandbox Code Playgroud)
不
.filter(s -> s.contains("1329"))
Run Code Online (Sandbox Code Playgroud)
我猜你认为这意味着。
因此,您的清单为:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, ... 25, 26, 27, 28, 29]
^ ^ ^ ^ ^ ^
Run Code Online (Sandbox Code Playgroud)
其中"1329"
包含1,2, 3, 9, 13 and 29
归档时间: |
|
查看次数: |
1119 次 |
最近记录: |