gpt4 book ai didi

java - 如何分组然后使用java8流列出toMap

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:02:26 24 4
gpt4 key购买 nike

原始数据是这样的:

[
{ 'k1': 'gbv1', 'k2': 'v2' },
{ 'k1': 'gbv1', 'k2': 'v4' },
]

所需数据如下:

{
'gbv1': { 'v2': true, 'v4': true },
}

即按 k1 分组,然后选择 k2 的值。

我目前拥有的:

examples.stream().collect(
Collectors.groupingBy(Example::getK1,
Collectors.mapping(Example::getK2,
Collectors.toList())));

它返回k2 的值列表而不是映射;

我大部分时间都在使用 javascript,做这类工作很容易,因为我认为它是动态的。

最佳答案

使用toMap代替mapping:

Map<String,Map<String,Boolean>> map =
examples.stream()
.collect(Collectors.groupingBy(Example::getK1,
Collectors.toMap(Example::getK2,v->true,(v1,v2)->v1)));

这是假设 getK1()getK2() 都返回一个 String

关于java - 如何分组然后使用java8流列出toMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47768795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com