如何通过partitioningby区分对与错?

时间:2019-06-12 13:00:25

标签: java java-stream

我正在使用Java流根据特定条件将值“ true”和“ false”分开,但它们都是被计为“ false”的值 我有以下代码:

Map<String ,Map<Boolean,Long>> grouped= joinFirst.stream()
                .collect(Collectors.groupingBy(t->t.get1().getLShipmode(),
                        partitioningBy(t-> t.get0().getOOrderpriority().equals("1-URGENT")  , counting())));

grouped.forEach((p, n) -> n.forEach((k, v) -> System.out.format("%s %s %d \n", p, k, v)));

结果是这样的:

邮件为假13209
邮件为真0
船舶假13224
SHIP true 0

但是应该是:

邮件为假0
邮件为真5376
船舶假0
SHIP true 5346

1 个答案:

答案 0 :(得分:2)

您可以将模式重复为:

grouped.forEach((p, n) -> n.forEach((k, v) -> System.out.format("%s %s %d", p, k, v)));