gpt4 book ai didi

java - 将 map 转换为 map 列表

转载 作者:行者123 更新时间:2023-12-02 04:04:35 24 4
gpt4 key购买 nike

我有一个要求,我想将 map 转换为 map 列表。

我尝试了以下代码,

List<Map<String, Object>> response = new ArrayList<>();
Set<Long> categories = new HashSet<>();

List<CCP> ccpList = ccpRepository.findByPIdIn(ids);
Map<Integer, List<Integer>> categoriesByProduct = ccpList.stream()
.collect(Collectors.groupingBy(ccp -> ccp.getPId(), Collectors.mapping(ccp-> ccp.getCId(), Collectors.toList())));
for(Entry<Integer, List<Integer>> en : categoriesByProduct.entrySet()) {
Map<String,Object> responseObject = new HashMap<>();
responseObject.put("pid", en.getKey());
responseObject.put("categories",en.getValue());
response.add(responseObject);
}

有什么方法可以修改java 8风格的以下代码:

for(Entry<Integer, List<Integer>> en : categoriesByProduct.entrySet()) {
Map<String,Object> responseObject = new HashMap<>();
responseObject.put("pid", en.getKey());
responseObject.put("categories",en.getValue());
response.add(responseObject);
}

最佳答案

将 for-loop-content 放入函数中并将其与流一起使用:

response = categoriesByProduct.entrySet()
.stream()
.map(e -> toMap(e))
.collect(Collectors.toList());

public static Map<String, Object> toMap(Map.Entry<Integer, List<Integer>> en) {
Map<String,Object> responseObject = new HashMap<>();
responseObject.put("pid", en.getKey());
responseObject.put("categories",en.getValue());
return responseObject;
}

关于java - 将 map 转换为 map 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53280496/

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