Java
[Java] Collections(2-1)_Map 반복문 도는 여러방식
happyhelen
2021. 11. 3. 15:57
시작하기 앞서 모든 map 은 다음의 <key, value> 를 선행했다고 가정한다
Map<String, String> map = new HashMap<String, String>();
map.put("서울", "123");
map.put("부산", "456");
map.put("인천", "789");
map.put("대전", "234");
map.put("일산", "567");
1. EntrySet()
EntrySet() 은 <key, value> 값 모두를 대상으로 한다
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key: " + entry.getKey() + "value: " + entry.getValue());
}
Iterator 반복자를 쓰고자 하면 다음과 같다
Iterator<Map.Entry<String, String>> itr = map.entrySet().iterator();
while (itr.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) itr.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println("[key]:" + key + ", [value]:" + value);
}
2. keySet() , values()
KeySet() 은 key 만을, values()는 value 만을 대상으로 한다
keyset()
for (String key : map.keySet()) {
String value = map.get(key);
System.out.println("key: " + key + " value: " + value);
}
단, keyset() 으로는 key 뿐만 아니라 value 도 조회할 수 있지만 시간이 많이 소모되는 단점이 있다
Iterator 반복자를 쓰고자 하면 다음과 같다
Iterator<String> itr = map.keySet().iterator();
while (itr.hasNext()) {
String key = itr.next();
String value = map.get(key);
System.out.println("[key]:" + key + ", [value]:" + value);
}
values()
for (String value : map.values()) {
System.out.println("Value: " + value);
}
Iterator 반복자를 쓰고자 하면 다음과 같다
Iterator<String> itr = map.values().iterator();
while (itr.hasNext()) {
String value = itr.next();
System.out.println("value: " + value);
}
++ 아직 공부중인 방법들
더보기
3. Stream
map.entrySet().stream().forEach(entry-> {
System.out.println("key: " + entry.getKey() + " value: "+entry.getValue());
});
4. Lamda
map.entrySet().stream().forEach(entry-> {
System.out.println("key: " + entry.getKey() + " value: "+entry.getValue());
});