小编Jac*_*ack的帖子

使用java 8流将键值对转换为按键对象映射的最快方法

模型:

public class AgencyMapping {
    private Integer agencyId;
    private String scoreKey;
}

public class AgencyInfo {
    private Integer agencyId;
    private Set<String> scoreKeys;
}
Run Code Online (Sandbox Code Playgroud)

我的代码:

List<AgencyMapping> agencyMappings;
 Map<Integer, AgencyInfo> agencyInfoByAgencyId = agencyMappings.stream()
            .collect(groupingBy(AgencyMapping::getAgencyId,
                    collectingAndThen(toSet(), e -> e.stream().map(AgencyMapping::getScoreKey).collect(toSet()))))
            .entrySet().stream().map(e -> new AgencyInfo(e.getKey(), e.getValue()))
            .collect(Collectors.toMap(AgencyInfo::getAgencyId, identity()));
Run Code Online (Sandbox Code Playgroud)

有没有办法获得相同的结果,使用更简单的代码,更快?

collections performance java-8 java-stream

6
推荐指数
1
解决办法
109
查看次数

标签 统计

collections ×1

java-8 ×1

java-stream ×1

performance ×1