小编Que*_*inb的帖子

如何使用Java 8流和值的开头数组过滤列表

我有2个列表,一个包含数字列表,另一个包含名称列表。我在名称的开头加上了第一个列表中的数字,然后加上了下划线。我想根据第一个列表中找到的所有数字过滤第二个列表。

我尝试过的。

List<String> numberList = new ArrayList<>();
numberList.add("1_");
numberList.add("9_");

List<String> nameList = new ArrayList<>();
nameList.add("1_John");
nameList.add("2_Peter");
nameList.add("9_Susan");

List<String> filteredList = Stream.of(numberList.toArray(new String[0]))
                .filter(str -> nameList.stream().anyMatch(str::startsWith))
                .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

上面的代码运行没有错误,但是filteredList为空。显然我做错了。

filteredList应该仅包含:

1_约翰

9_苏珊

java startswith java-8 java-stream

5
推荐指数
1
解决办法
99
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1

startswith ×1