如何基于密钥编辑哈希图列表值

时间:2019-04-24 11:10:27

标签: java hashmap

我需要根据键编辑列表值。 我的代码是:

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) 

在这里发生一些逻辑之后,现在我想用相同的地图列表索引中的葡萄替换/编辑苹果。

2 个答案:

答案 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");