gpt4 book ai didi

java - 动态添加新列表到 map

转载 作者:行者123 更新时间:2023-12-01 22:38:23 26 4
gpt4 key购买 nike

我有一个像这样的数组 006247241 0590040100000124 0590020100000125 0590020450000124 006247242 0590040100000129 ...现在,如果数组中任何值的长度在1到9之间,它就会成为一个键,它后面的其余部分立即成为我的值使用 map 。因此,在上述情况下, 006247241 成为键,0590040100000124 0590020100000125 0590020450000124 成为该键的值,依此类推。我的代码是这样的(以上所有值都在数组cellValues[]中)。

Map<String, List<String>> map = new HashMap<String, List<String>>();
List<String> list = new ArrayList<String>();

String key="#";

for(int k=0;k<cellValues.length;k++){
if(cellValues[k]!=null){
if(cellValues[k].length()<=9 && cellValues[k].length()>0 ){
map.put(key,list);
//System.out.println("MAP:"+map);
key=cellValues[k];
}else{
list.add(cellValues[k]);
}
}
}

我在这里面临的问题是如何为每个新键添加新列表。上面的代码只会将所有值附加到数组中的每个键,输出如下

键 = 006247241 值 = [#, 0590040100000124,0590020100000125,0590020450000124, 0590040100000129

键 = 006247242 值 = [#, 0590040100000124,0590020100000125,0590020450000124, 0590040100000129

最佳答案

您每次都重复使用同一个列表。如果您想要每个key都有一个新列表,则应该在每次将新的key,value对放入映射中时创建它:

Map<String, List<String>> map = new HashMap<String, List<String>>();
String key="#";

for(String value : cellValues){
if(value.length()<=9){
// its a key
key = value;
map.put(key, new ArrayList<String>());
}else{
// its a list value
map.get(key).add(value);
}
}

您不再需要声明列表,因为您为每个键使用一个新列表,并且在添加到列表时,您可以通过搜索来从 map 中获取对列表的引用最后一个键:map.get(key).add(value);

关于java - 动态添加新列表到 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26552383/

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