gpt4 book ai didi

java - 将值添加到 HashMap 中的列表对象

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

我正在尝试将列表对象添加到 HashMap

我尝试了以下代码,但没有成功

public static Map<Long, List<Long>>  getCellAttributes(List<Vo> voList){

LOG.info("VO: {}", Arrays.toString(VO.toArray()));

Map<Long, List<Long>> atributesMap = new HashMap();

List<Long> cellList = new ArrayList<>();

for(: VOList){
Long cID = VO.getID();
Long cellUserNumber = VO.getCellNumber();
if(cellMap.containsKey(ID)){
cellList.add(cellNumber);
cellmap.put(ID, list);
}
else {
Map.put(ID, cellAtributesMap.get(ID).add(cellNumber));
}
}
return cellMao;
}

发现 else block 部分出现以下错误。

Wrong 2nd argument type. Found: 'boolean', required:

最佳答案

好的,首先,else block 中的 Map.put 是什么?对我来说,这在逻辑上听起来是错误的,可能您的意思是 campaignId 尚未出现在 map 中的情况。在这种情况下,您可以:

else {
List<Long> cellList = new ArrayList<>();
cellList.add(cellUserNumber);
cellAtributesMap.put(campaignId, cellList);
}

现在 if block 在逻辑上看起来也是错误的,不需要维护全局列表(如果 targetedOffersCampaignVOList 没有排序怎么办)并且不需要每次都放入到 map 中。

因为这对我来说似乎不是作业,所以这里有一个更好的版本:

Map<Long, List<Long>> cellAtributesMap = new HashMap();

// note, the following line is not required and should be removed
//List<Long> cellList = new ArrayList<>();

for(TargetedOffersCampaignVO targetedOffersCampaignVO: targetedOffersCampaignVOList){
Long campaignId = targetedOffersCampaignVO.getCampaignID();
Long cellUserNumber = targetedOffersCampaignVO.getCellUserNumber();
if(cellAtributesMap.containsKey(campaignId)){
// the list in the value already exists anyway, just add a new cell user number to it
cellAttributesMap.get(campaignId).add(cellUserNumber);
}
else {
// create a new key-value pair in the result map
// and add one element which is a current cellUserNumber to it
List<Long> cellList = new ArrayList<>();
cellList.add(cellUserNumber);
cellAtributesMap.put(campaignId, cellList);
}
}
return cellAtributesMap;

关于java - 将值添加到 HashMap 中的列表对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57024171/

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