我有一个名为 a
的列表,我想把它分成几个小列表。
比如所有包含“aaa”的项,所有包含“bbb”的项和一些其他谓词。
如何使用Java8实现呢?
我看到了这篇文章,但它只分割成两个列表。
public void partition_list_java8() {
Predicate<String> startWithS = p -> p.toLowerCase().startsWith("s");
Map<Boolean, List<String>> decisionsByS = playerDecisions.stream()
.collect(Collectors.partitioningBy(startWithS));
logger.info(decisionsByS);
assertTrue(decisionsByS.get(Boolean.TRUE).size() == 3);
}
我看到了这个帖子,但它非常古老,是在Java 8之前。