Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何分组,然后使用java8流列出toMap_Java_Group By_Java 8_Java Stream - Fatal编程技术网

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

如何分组,然后使用java8流列出toMap,java,group-by,java-8,java-stream,Java,Group By,Java 8,Java Stream,原始数据如下所示: [ { 'k1': 'gbv1', 'k2': 'v2' }, { 'k1': 'gbv1', 'k2': 'v4' }, ] { 'gbv1': { 'v2': true, 'v4': true }, } 所需数据如下: [ { 'k1': 'gbv1', 'k2': 'v2' }, { 'k1': 'gbv1', 'k2': 'v4' }, ] { 'gbv1': { 'v2': true, 'v4': true },

原始数据如下所示:

[
    { 'k1': 'gbv1', 'k2': 'v2' },
    { 'k1': 'gbv1', 'k2': 'v4' },
]
{
    'gbv1': { 'v2': true, 'v4': true },
}
所需数据如下:

[
    { 'k1': 'gbv1', 'k2': 'v2' },
    { 'k1': 'gbv1', 'k2': 'v4' },
]
{
    'gbv1': { 'v2': true, 'v4': true },
}
i、 e.按
k1
分组,然后选择
k2
的值

我目前拥有的:

examples.stream().collect(
    Collectors.groupingBy(Example::getK1,
        Collectors.mapping(Example::getK2,
                Collectors.toList())));
它返回
k2
值的列表,而不是映射


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

使用
toMap
而不是
映射

Map<String,Map<String,Boolean>> map =
    examples.stream()
            .collect(Collectors.groupingBy(Example::getK1,
                     Collectors.toMap(Example::getK2,v->true,(v1,v2)->v1)));
地图=
示例.stream()
.collect(收集器.groupingBy)(示例::getK1,
toMap(示例::getK2,v->true,(v1,v2)->v1));

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

它抛出
重复键true