Ho una lista a
che voglio dividere in poche piccole liste.Come partizionare un elenco per predicato usando java8?
dire tutti gli elementi che contiene "aaa", tutto ciò che contiene con "bbb" e altri predicati.
Come posso farlo utilizzando java8?
Ho visto questo post ma si divide solo in 2 elenchi.
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);
}
ho visto questo post, ma era molto vecchio, prima di java 8.
Un predicato è booleano. Ha solo "vero" e "falso". Penso che sarebbe meglio usare un 'Function' e' Collectors :: groupingBy' nel tuo caso. – RealSkeptic