我有一个 list
计划:
ID, A_CODE, COMPARTMENT
10683 163 213
10683 616 194
10683 163 212
10683 163 211
10683 163 214
想要生产 AGGREGATED_PLANS
ID A_CODE COMPARTMENTS
10683 163 211/212/213/214
10683 616 194
如何使用 java lambda 表达式执行此操作?
我在想这样的事情,但不确定 aggregateCompartments 部分?
plans.stream()
.collect(groupingBy(Plan::getACode,
aggregateCompartments(Plan::getCompartments)));
有什么建议吗?
最佳答案
这可能对你有帮助:
List<Plan> plans = new ArrayList<>();
plans.add(new Plan("10683", "163", "213"));
plans.add(new Plan("10683", "616", "194"));
plans.add(new Plan("10683", "163", "212"));
plans.add(new Plan("10683", "163", "211"));
plans.add(new Plan("10683", "163", "214"));
System.out.println(
plans.stream().collect(
Collectors.groupingBy(p -> p.id + " " + p.aCode,
Collectors.mapping(Plan::getCompartment, Collectors.joining("/")))));
输出:
{10683 616=194, 10683 163=213/212/211/214}
关于Java lambda 聚合器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48800554/