JAVAでMAPを巡るおすすめ方法
public static void main(String[] args) {
// Map 4
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
map.put(1, 2);
// 1. entrySet , ( )
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
}
// 2. keySet values ,
// map
for (Integer key : map.keySet()) {
System.out.println("key = " + key);
}
// map
for (Integer value : map.values()) {
System.out.println("key = " + value);
}
// 3. Iterator
Iterator<Map.Entry<Integer, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, Integer> entry = it.next();
System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
}
// 4. java8 Lambda
// java8 Lambda , , key value,
// , , entrySet, entrySet
map.forEach((key, value) -> {
System.out.println(key + ":" + value);
});
}
key、またはvalueのみを取得する場合は、keySetまたはvalues方式を推奨します.
keyとvalueが同時に必要な場合はentrySetを推奨します.
遍歴中に要素を削除する必要がある場合は、Iteratorを使用することを推奨します.
遍歴中に要素を追加する必要がある場合は、新しい要素を一時mapに保存し、遍歴が完了したら、元のmapに一時mapを配置することができます.