小编del*_*ica的帖子

List <String>获取以另一个列表中的一个字符串结尾的所有元素的计数

假设我有一个包含以下元素的列表:

List<String> endings= Arrays.asList("AAA", "BBB", "CCC", "DDD");
Run Code Online (Sandbox Code Playgroud)

我还有一个很大的字符串列表,从中我想从上面的列表中选择所有以任何字符串结尾的元素。

List<String> fullList= Arrays.asList("111.AAA", "222.AAA", "111.BBB", "222.BBB", "111.CCC", "222.CCC", "111.DDD", "222.DDD");
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想对第二个列表进行分区,以使其包含四个组,每个组仅包含那些以第一个列表中的一个字符串结尾的元素。因此,在上述情况下,结果将是4组,每组2个元素。

我找到了这个示例,但是我仍然缺少可以过滤包含在不同列表中的所有结尾的部分。

Map<Boolean, List<String>> grouped = fullList.stream().collect(Collectors.partitioningBy((String e) -> !e.endsWith("AAA")));
Run Code Online (Sandbox Code Playgroud)

更新:MC Emperor的答案确实有效,但是它在包含数百万个字符串的列表上崩溃,因此在实践中效果不佳。

java partitioning java-stream

6
推荐指数
3
解决办法
166
查看次数

标签 统计

java ×1

java-stream ×1

partitioning ×1