시작하기 앞서 모든 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());
});
'Java' 카테고리의 다른 글
[Java] 기술면접 (0) | 2024.04.03 |
---|---|
[Java] 의존관계 주입과 OCP, DIP 준수하기 (feat. Config) (0) | 2021.11.20 |
[Java] DTO (Data transfer Object) 란? (0) | 2021.09.13 |
[Java] StringTokenizer (0) | 2021.08.26 |
[Java] Collections(2)_Map 인터페이스 (0) | 2021.08.24 |