java hashmap key iteration

梦想与她 提交于 2019-12-18 11:46:34

问题


Is there any way to iterate through a java Hashmap and print out all the values for every key that is a part of the Hashmap?


回答1:


With for-each loop, use Map.keySet() for iterating keys, Map.values() for iterating values and Map.entrySet() for iterating key/value pairs.

Note that all these are direct views to the map that was used to acquire them so any modification you make to any of the three or the map itself will reflect to all the others too.




回答2:


Yes, you do this by getting the entrySet() of the map. For example:

Map<String, Object> map = new HashMap<String, Object>();

// ...

for (Map.Entry<String, Object> entry : map.entrySet()) {
    System.out.println("key=" + entry.getKey() + ", value=" + entry.getValue());
}

(Ofcourse, replace String and Object with the types that your particular Map has - the code above is just an example).




回答3:


public class abcd {
    public static void main(String[] args)
    {
       Map<Integer, String> testMap = new HashMap<Integer, String>();
        testMap.put(10, "a");
        testMap.put(20, "b");
        testMap.put(30, "c");
        testMap.put(40, "d");
        for (Entry<Integer, String> entry : testMap.entrySet()) {
            Integer key=entry.getKey();
            String value=entry.getValue();
        }
    }
}



回答4:


for (Map.Entry<T,U> e : map.entrySet())
{
    T key = e.getKey();
    U value = e.getValue();
    .
    .
    .
}

In addition, if you use a LinkedHashMap as the implementation, you'll iterate in the order the key/value pairs were inserted. If that's not important, use a HashMap.




回答5:


hashmap.keySet().iterator()

use a for loop to iterate it.

then use hashmap.get(item) to get individual values,

Alternatively just use entrySet() for getting an iterator for values.




回答6:


Java 8 added Map.forEach which you can use like this:

map.forEach((k, v) -> System.out.println("key=" + k + " value=" + v));

There's also replaceAll if you want to update the values:

map.replaceAll((k, v) -> {
    int newValue = v + 1;
    System.out.println("key=" + k + " value=" + v + " new value=" + newValue);
    return newValue;
});



回答7:


Keep it simple, please:

HashMap<String,String> HeyHoLetsGo = new HashMap();

HeyHoLetsGo.put("I", "wanna be your dog");
HeyHoLetsGo.put("Sheena", "is a punk rocker");
HeyHoLetsGo.put("Rudie", "can't fail");

for ( String theKey : HeyHoLetsGo.keySet() ){
    System.out.println(theKey + " "+HeyHoLetsGo.get(theKey));
}


来源:https://stackoverflow.com/questions/3344734/java-hashmap-key-iteration

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!