【发布时间】:2014-12-20 13:19:21
【问题描述】:
我有一个这样的数组 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
【问题讨论】:
-
预期输出是什么?
-
答案= 006247241值= [#,0590040100000124,0590020100000125,0590020450000124,0590040100000129答案= 006247242值= [#,0590040100000300,0590020100000325,0590020450000312,0590040100000229 跨度>
-
每个键都有自己的列表。因此,每次在地图中放置一个键时,您还需要创建与该键一起的新列表。
-
@JBNizet 这就是我正在寻找的,但在上述情况下无法弄清楚如何做到这一点
-
键是否应该在它们的列表中具有相同的值或者它们是分开的?
标签: java arrays arraylist hashmap