Нет, не обязательно. Необходимо действительно использовать entrySet () .iterator () с этой целью. С этим итератором Вы будете идти через всю Карту. Объекты записи в Карте и могут получить доступ к каждому значению ключа и присваиваемому значению.
для использования entrySet, который упомянул @Cuchullain:
Map<String, String> map = new HashMap<String, String>();
// populate hashmap
for (Map.Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
// your code here
}
Оба значения () и набор ключей () делегируют к entrySet () итератор, таким образом, они будут возвращены в том же порядке. Но как Alex говорит, что намного лучше использовать entrySet () итератор непосредственно.
Я соглашаюсь с pmac72. Не предполагайте, что Вы получите заказанные значения или ключи от незаказанного набора. Если это работает время ко времени, это - просто чистая опасность. Если Вы хотите, чтобы порядок был сохранен, используйте LinkedHashMap или TreeMap или наборы свободного городского населения OrderedMap.
Вы хотите использовать это, LinkedHashMap, для предикабельного итеративного порядка
Вопрос смутил меня сначала, но @Matt разрешил его для меня.
Рассмотрите использование entrySet () метод, который возвращает набор с парами "ключ-значение" на Карте.
Map<Integer, Integer> a = new HashMap<Integer, Integer>(2);
a.put(1, 2);
a.put(2, 3);
for (Map.Entry<Integer, Integer> entry : a.entrySet()) {
System.out.println(entry.getKey() + " => " + entry.getValue());
}
Это производит:
1 => 2
2 => 3
3 => 3
Я второй @basszero. В то время как
for (Map.Entry<Integer, Integer> entry : a.entrySet())
будет работать, я нахожу использование структуры данных, которая делает это автоматически более хорошо. Теперь, можно просто выполнять итерации "обычно"
Метод набора ключей HashMap возвращает Набор, который не гарантирует порядка.
Значения HashMap () метод возвращает Набор, который не гарантирует порядка.
Тем не менее вопрос был, "они собирающийся коррелировать" так технически, ответ, возможно, но не полагайтесь на него.
public class Test {
public static void main(String[] args) {
HashMap <String,String> hashmap = new HashMap<String,String>();
hashmap.put("one", "1");
hashmap.put("two", "2");
hashmap.put("three", "3");
hashmap.put("four", "4");
hashmap.put("five", "5");
hashmap.put("six", "6");
Iterator <String> keyIterator = hashmap.keySet().iterator();
Iterator <String> valueIterator = hashmap.values().iterator();
while(keyIterator.hasNext()) {
System.out.println("key: "+keyIterator.next());
}
while(valueIterator.hasNext()) {
System.out.println("value: "+valueIterator.next());
}
}
}
key: two
key: five
key: one
key: three
key: four
key: six
value: 2
value: 5
value: 1
value: 3
value: 4
value: 6