Java映射字符串<;列表字符串>;循环
我正在尝试使用以下代码循环地图:Java映射字符串<;列表字符串>;循环,java,loops,map,Java,Loops,Map,我正在尝试使用以下代码循环地图: Map<String, List<String>> newMap = new HashMap<String, List<String>>(); List<String> newList = new ArrayList<String>(); 有人知道如何循环或搜索位置或正确列表吗?因为您将同一列表分配给地图中的所有值,所以不需要循环遍历条目集。您只需获取值并执行replaceAll操作,如C
Map<String, List<String>> newMap = new HashMap<String, List<String>>();
List<String> newList = new ArrayList<String>();
有人知道如何循环或搜索位置或正确列表吗?因为您将同一列表分配给地图中的所有值,所以不需要循环遍历条目集。您只需获取值并执行replaceAll操作,如
Collections.replaceAll(list,value1,value2)代码>
List List=pmMap.get(value1);
如果(列表!=null){
集合.replaceAll(列表、值1、值2);
}
样品
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
public static void main(String[] args) {
Map<String, List<String>> pmMap = new HashMap<String, List<String>>();
List<String> newList = new ArrayList<String>(){{ add("15"); add("16"); add("17"); add("18");}};
for (int m = 0; m < newList.size(); m++) {
String newName = newList.get(m);
pmMap.put(newName , newList);
}
System.out.println(pmMap);
String value1 = "15";
String value2 = "19";
List<String> list = pmMap.get(value1);
if(list != null){
Collections.replaceAll(list, value1, value2);
}
System.out.println(pmMap);
}
}
import java.util.ArrayList;
导入java.util.Collections;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
公共类测试{
公共静态void main(字符串[]args){
Map pmMap=newhashmap();
List newList=newarraylist(){{add(“15”);add(“16”);add(“17”);add(“18”);};
对于(int m=0;m
首先,我猜这个列表newList=newarraylist()
应该在更新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);
}
Set Set=pmMap.keySet();
for(字符串键:设置){
ArrayList list=null;
如果(值1.等于(键)){
list=pmMap.get(键);
列表。添加(值2);
pmMap.put(键、列表);
}
我没有检查代码,但你知道了。这里的pmMap
是什么?这应该是什么?int a=list.indexOf(list);
列表本身的索引?似乎你在为每个键将相同的列表放入映射中……这段代码到底应该做什么?list.indexOf(list)是什么
?
MAP: 15=[value2, 0, 0, 0] 16=[value2, 0, 0, 0, 0] 17=[value2, 0, ,0 ,0]
List<String> list = pmMap.get(value1);
if(list != null){
Collections.replaceAll(list, value1, value2);
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
public static void main(String[] args) {
Map<String, List<String>> pmMap = new HashMap<String, List<String>>();
List<String> newList = new ArrayList<String>(){{ add("15"); add("16"); add("17"); add("18");}};
for (int m = 0; m < newList.size(); m++) {
String newName = newList.get(m);
pmMap.put(newName , newList);
}
System.out.println(pmMap);
String value1 = "15";
String value2 = "19";
List<String> list = pmMap.get(value1);
if(list != null){
Collections.replaceAll(list, value1, value2);
}
System.out.println(pmMap);
}
}
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);
}