gpt4 book ai didi

Java-Stream,带有重复键的 toMap

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:54:41 26 4
gpt4 key购买 nike

所以可能有一个 abc 用于多次付款,现在我有:

//find abc id for each payment id
Map<Long, Integer> abcIdToPmtId = paymentController.findPaymentsByIds(pmtIds)
.stream()
.collect(Collectors.toMap(Payment::getAbcId, Payment::getPaymentId));

但后来我意识到这可能有重复的键,所以我希望它返回一个

Map<Long, List<Integer>> abcIdToPmtIds 

其中一个条目将包含一个 abc 和他的几笔付款。

我知道我可以使用 groupingBy但后来我想我只能得到 Map<Long, List<Payments>> .

最佳答案

使用其他 groupingBy 重载。

paymentController.findPaymentsByIds(pmtIds)
.stream()
.collect(
groupingBy(Payment::getAbcId, mapping(Payment::getPaymentId, toList());

关于Java-Stream,带有重复键的 toMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48649513/

26 4 0