Mam listę a
, którą chcę podzielić na kilka małych list.Jak podzielić na partycje listę według predicate za pomocą java8?
powiedzieć wszystkie elementy, które zawiera "aaa", wszystko, co zawiera "bbb" i kilka innych predykatów.
Jak to zrobić, używając java8?
Widziałem to post, ale dzieli się ono tylko na 2 listy.
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);
}
Widziałem ten post, ale to był bardzo stary, zanim java 8.
Predykat jest logiczna. Ma po prostu "prawdziwy" i "fałszywy". Myślę, że lepiej byłoby użyć w twojej sprawie 'Function' i' Collectors :: groupingBy'. – RealSkeptic