You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Java中Map<A,List<B>>转Map<A,Set<B>>的Stream代码编译报错问题

代码问题说明

你的代码一共存在2处直接导致编译报错的问题:

  • 缺少返回语句:方法声明了Map<A, Set<B>>类型的返回值,但你没有将Stream收集得到的结果返回,仅执行了处理逻辑没有返回值。
  • SimpleImmutableEntry使用原始类型:创建对象时没有指定泛型参数,导致泛型类型丢失,编译器无法推断收集结果的类型和方法返回值匹配。

修正后的代码

import java.util.AbstractMap.SimpleImmutableEntry;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;

Map<A, Set<B>> convert(Map<A, List<B>> original){
    return original.entrySet().stream()
            .map(entry -> new SimpleImmutableEntry<>(entry.getKey(), new HashSet<>(entry.getValue())))
            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}

内容的提问来源于stack exchange,提问作者user93796

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:54:10