Если вы в порядке с Apache commons lib
outputWriter.write(ArrayUtils.join(array, ","));
Выполните итерацию по entrySet ()
следующим образом:
public static void printMap(Map mp) {
Iterator it = mp.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
System.out.println(pair.getKey() + " = " + pair.getValue());
it.remove(); // avoids a ConcurrentModificationException
}
}
Подробнее о Map
.
Если вас интересуют только ключи, вы можете выполнить итерацию по keySet ()
карты:
Map<String, Object> map = ...;
for (String key : map.keySet()) {
// ...
}
Если вам нужны только значения, используйте values ()
:
for (Object value : map.values()) {
// ...
}
Наконец, если вы хотите и ключ, и значение, используйте entrySet ()
:
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
// ...
}
Одно предостережение: если вы хотите удалить элементы в середине итерации, вам нужно будет сделать это через итератор (см. ответ karim79 ). Однако изменение значений элементов можно (см. Map.Entry
).
Вы можете перебирать записи в Map
несколькими способами. Получите каждый ключ и значение следующим образом:
Map<?,?> map = new HashMap<Object, Object>();
for(Entry<?, ?> e: map.entrySet()){
System.out.println("Key " + e.getKey());
System.out.println("Value " + e.getValue());
}
Или вы можете получить список ключей с помощью
Collection<?> keys = map.keySet();
for(Object key: keys){
System.out.println("Key " + key);
System.out.println("Value " + map.get(key));
}
Если вы просто хотите получить все значения и не беспокоитесь о ключах, вы можете использовать:
Collection<?> values = map.values();
Зависит. Если вы знаете, что вам понадобятся и ключ, и значение каждой записи, пройдите через entrySet
. Если вам просто нужны значения, тогда есть метод values ()
. А если вам просто нужны ключи, используйте keyset ()
.
Плохая практика - перебирать все ключи, а затем внутри цикла всегда делать map.get (ключ)
, чтобы получить значение. Если вы это делаете, то первый вариант, который я написал, для вас.
Умнее:
for (String key : hashMap.keySet()) {
System.out.println("Key: " + key + ", Value: " + map.get(key));
}