Java Mapのいくつかの遍歴方式
1728 ワード
方法1 KeySetによる遍歴
この方式はコード論理がはっきりしているが,効率が低いという深刻な問題がある.
方法2 EntrySetのIteratorによる遍歴
この方法は効率的ですが、Iteratorに詳しくない人には少し友好的ではありません.
方法3 EntrySetによる遍歴
この方式の本質は方法と変わらないが、書き方を改善しただけで、効率が高いだけでなく、コードも簡潔で、読むのがもっと友好的だ.
public void loopMapByKeySet() {
Map testMap = new HashMap<>();
testMap.put("testKey1", 1);
testMap.put("testKey2", 2);
testMap.put("testKey3", 3);
for (String key : testMap.keySet()) {
System.out.print("key : " + key + " , value : " + testMap.get(key));
}
}
この方式はコード論理がはっきりしているが,効率が低いという深刻な問題がある.
方法2 EntrySetのIteratorによる遍歴
public void loopMapByIterator() {
Map testMap = new HashMap<>();
testMap.put("testKey1", 1);
testMap.put("testKey2", 2);
testMap.put("testKey3", 3);
Iterator> iterator = testMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry = iterator.next();
System.out.print("key : " + entry.getKey() + " , value : " + entry.getValue());
}
}
この方法は効率的ですが、Iteratorに詳しくない人には少し友好的ではありません.
方法3 EntrySetによる遍歴
public void loopMapByEntrySet() {
Map testMap = new HashMap<>();
testMap.put("testKey1", 1);
testMap.put("testKey2", 2);
testMap.put("testKey3", 3);
for (Map.Entry entry : testMap.entrySet()) {
System.out.print("key : " + entry.getKey() + " , value : " + entry.getValue());
}
}
この方式の本質は方法と変わらないが、書き方を改善しただけで、効率が高いだけでなく、コードも簡潔で、読むのがもっと友好的だ.