Есть ли способ выполнить итерацию через java Hashmap и распечатать все значения для каждого ключа, который является частью Hashmap?
Итерация ключевого слова java
Ответ 1
С для каждого цикла используйте Map.keySet()
для итерации ключей Map.values()
для итерации значений и Map.entrySet()
для итерации пар ключ/значение.
Обратите внимание, что все это прямые представления на карту, которая использовалась для их получения, поэтому любая модификация, которую вы производите для любого из трех или самой карты, будет отражать и все остальные.
Ответ 2
Да, вы делаете это, получая entrySet()
на карте. Например:
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());
}
(Конечно, замените String
и Object
на типы, которые имеет ваш конкретный Map
- приведенный выше код является только примером).
Ответ 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();
.
.
.
}
Кроме того, если вы используете LinkedHashMap в качестве реализации, вы будете перебирать порядок, в который были вставлены пары ключ/значение. Если это не важно, используйте HashMap.
Ответ 5
hashmap.keySet().iterator()
используйте цикл for
для его итерации.
затем используйте hashmap.get(item)
для получения отдельных значений,
В качестве альтернативы просто используйте entrySet()
для получения итератора для значений.
Ответ 6
Java 8 добавил Map.forEach
который вы можете использовать следующим образом:
map.forEach((k, v) -> System.out.println("key=" + k + " value=" + v));
Там также replaceAll
если вы хотите обновить значения:
map.replaceAll((k, v) -> {
int newValue = v + 1;
System.out.println("key=" + k + " value=" + v + " new value=" + newValue);
return newValue;
});
Ответ 7
Будьте проще, пожалуйста:
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));
}