java hashmap key iteration

17

Есть ли способ выполнить итерацию через java Hashmap и распечатать все значения для каждого ключа, который является частью Hashmap?

    
задан ping 27.07.2010 в 16:39
источник

5 ответов

16

С для каждого цикла , используйте Map.keySet() для итерации ключей, Map.values() для итерации значений и Map.entrySet() для итерации пар ключ / значение.

Обратите внимание, что все это прямые представления на карту, которая использовалась для их получения, поэтому любая модификация, которую вы производите для любого из трех или самой карты, будет отражать и все остальные.

    
ответ дан Esko 27.07.2010 в 16:42
источник
22

Да, вы делаете это, получая 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 - приведенный выше код является лишь примером).

    
ответ дан Jesper 27.07.2010 в 16:41
источник
2
for (Map.Entry<T,U> e : map.entrySet())
{
    T key = e.getKey();
    U value = e.getValue();
    .
    .
    .
}

Кроме того, если вы используете LinkedHashMap в качестве реализации, вы будете перебирать порядок, в который были вставлены пары ключ / значение. Если это не важно, используйте HashMap.

    
ответ дан Jim Garrison 27.07.2010 в 16:41
источник
  • Очень четкий ответ, спасибо –  Sainath S.R 20.07.2015 в 13:03
2
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();
        }
    }
}
    
ответ дан Fathah Rehman P 17.05.2012 в 10:25
источник
1
hashmap.keySet().iterator()

используйте цикл for для его итерации.

затем используйте hashmap.get(item) , чтобы получить отдельные значения,

В качестве альтернативы просто используйте entrySet() для получения итератора для значений.

    
ответ дан Sanjay Manohar 27.07.2010 в 16:40
источник
  • Или, в зависимости от того, что пинг означает «значения», hashmap.values ​​(). iterator (). –  Mark Peters 27.07.2010 в 16:41