我正在尝试使用以下代码循环遍历一张地图:
Map<String, List<String>> newMap = new HashMap<String, List<String>>();
List<String> newList = new ArrayList<String>();
在地图上分配一些默认值
for ( int m = 1; m < attribteList.size(); m = m+2) {
String newName = newList.get(m);
newMap.put(newName , newList);
}
知道我需要在地图中添加值
for (another loop) {
String value1 = anyvalue;
String value2 = anyvalue;
Iterator it = pmMap.entrySet().iterator();
int cnt = 1;
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
if(value1.equalsIgnoreCase(pairs.getKey().toString())) {
for (List<String> list : pmMap.values()) {
int a = list.indexOf(list);
if (a == cnt) {
list.add(value2);
}
}
}
cnt++;
}
问题是我的循环不起作用。我需要根据位置或地图中的值从地图中添加value2
像:如果Map String(15)等于value1(15)找到值为15的Map Liststring并将value2放在里面。
输出数据应如下所示:
MAP: 15=[value2, 0, 0, 0] 16=[value2, 0, 0, 0, 0] 17=[value2, 0, ,0 ,0]
任何人都知道如何循环或搜索位置或正确的列表吗?
首先,我猜想这List<String> newList = new ArrayList<String>();
应该在您要更新的循环中,HashMap
否则@tobias_k提到您要向每个键插入相同的值。我想你不想要那个。
您可以keySet()
用来获取您的密钥Map
并在其中循环:
Set<String> set = pmMap.keySet();
for(String key : set) {
ArrayList<String> list = null;
if(value1.equals(key)) {
list = pmMap.get(key);
list.add(value2);
pmMap.put(key, list);
}
我没有检查代码,但是您知道了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句