Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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
Java 如何转动地图<;列表<;K>;,列表<;V>&燃气轮机;进入地图<;K、 列表<;V>>;?_Java_Collections_Java Stream - Fatal编程技术网

Java 如何转动地图<;列表<;K>;,列表<;V>&燃气轮机;进入地图<;K、 列表<;V>>;?

Java 如何转动地图<;列表<;K>;,列表<;V>&燃气轮机;进入地图<;K、 列表<;V>>;?,java,collections,java-stream,Java,Collections,Java Stream,在代码的某一部分中,我遇到的情况是,集合的类型是我需要的: Map<Specialization, List<SpecialistInfo>> specialistsMap = specialistsResponse .getSpecialists() .stream() .collect(groupingBy(SpecialistInfo::getSpecializations)); Map specialistsMap=specialistr

在代码的某一部分中,我遇到的情况是,集合的类型是我需要的:

Map<Specialization, List<SpecialistInfo>> specialistsMap = specialistsResponse
    .getSpecialists()
    .stream()
    .collect(groupingBy(SpecialistInfo::getSpecializations));
Map specialistsMap=specialistresponse
.getexperties()
.stream()
.收集(分组方式(SpecialistInfo::getSpecializations));
但实际上,该流返回一个
映射。

getexperties()
方法返回
列表专家
SpecialistInfo
的每个实例也包含一个列表。因此,getSpecializations方法返回
列表专门化

我需要将我的地图分组为
地图

如何通过流API实现它?

因此您有一个
列表
,每个
SpecialistInfo
都有一个
列表
。你需要反向映射这些。据推测,
Specialization
SpecialistInfo
是唯一的,并且
Specializations
SpecialistInfo
之间存在着多对多的关系

如果您正在寻找一种不使用streams API的线程安全解决方案(与YCF\L的解决方案相比)

List experties=getexperties();
Map specMap=newhashmap();
对于(SpecialistInfo specInfo:specialists){
对于(专门化规范:specInfo.getSpecializations()){
specMap.computeIfAbsent(spec,k->newArrayList()).add(specInfo);
}
}

是否要复制数据?像专门化一样,同一个列表与同一个值列表相关?我没有对此进行测试,但我很好奇是否可以使用
.collect(Collectors.flatMapping(specialistInfo->specialistInfo.getSpecializations().stream(),Collectors.groupingBy(Function.identity())输入数据结构包含的内容并不完全清楚。
专门化
是否在地图中用作键的所有列表中都是唯一的?值'List是否属于键列表的所有特殊化?它不起作用。我有一个异常“cannot internal functional interface type”@MaksimRybalkin My bad,我没有先编译它就写了这个。我活该。。。我已经修改了答案,希望有帮助!