Partitionieren einer Liste von Prädikat mit java8?

Habe ich eine Liste a denen ich aufteilen will, um paar kleine Listen.

sagen, alle die Elemente enthält, die mit "aaa", die alle enthält, die mit "bbb" und einige weitere Prädikate.

Wie kann ich das tun mit java8?

Sah ich dieses post aber nur eine Aufteilung auf 2 Listen.

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);
}

Sah ich dieses post, aber es war sehr alt, vor java 8.

  • Ein Prädikat ist boolean. Es hat nur ein "true" und "false". Ich denke, es wäre besser, verwenden Function und Collectors::groupingBy in Ihrem Fall.
InformationsquelleAutor Elad Benda | 2016-04-17
Schreibe einen Kommentar