我需要根据键编辑列表值。 我的代码是:
HashMap<String,List<String>> map= new HashMap<String,List<String>>()
List<String> listOMSColorCode = new ArrayList<String>()
List<String> listOMSColorCodeDisplayOrder = new ArrayList<String>()
listOMSColorCode.add("orange")
listOMSColorCode.add("apple")
listOMSColorCode.add("banana")
map.put("Key1",listOMSColorCode)
在这里发生一些逻辑之后,现在我想用相同的地图列表索引中的葡萄替换/编辑苹果。
答案 0 :(得分:2)
您可以使用ListIterator
:
for(ListIterator<String> li = listOMSColorCode.listIterator(); li.hasNext(); ) {
if(li.next().equals("apple")) {
li.set("grape");
}
}
if(li.next().equals("apple")) {
检查listIterator
的当前元素是否为"apple"
。它通过"grape"
方法将元素替换为ListIterator.set()
答案 1 :(得分:1)
效率不高,因为它会为每个事件迭代列表,但是它将替换所有事件:
List<String> modifiedList = map.get("Key1");
int index = 0;
while((index = modifiedList.indexOf("apple")) != -1){
modifiedList.set(index, "grapes");
}
或使用Collections类中的实用方法:
List<String> modifiedList = map.get("Key1");
Collections.replaceAll(modifiedList, "apple", "grapes");