[Java] Collections(2-1)_Map 반복문 도는 여러방식

[Java] Collections(2-1)_Map 반복문 도는 여러방식

시작하기 앞서 모든 map 은 다음의 를 선행했다고 가정한다

Map map = new HashMap(); map.put("서울", "123"); map.put("부산", "456"); map.put("인천", "789"); map.put("대전", "234"); map.put("일산", "567");

1. EntrySet()

EntrySet() 은 값 모두를 대상으로 한다

for (Map.Entry entry : map.entrySet()) { System.out.println("key: " + entry.getKey() + "value: " + entry.getValue()); }

Iterator 반복자를 쓰고자 하면 다음과 같다

Iterator> itr = map.entrySet().iterator(); while (itr.hasNext()) { Map.Entry entry = (Map.Entry) 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 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 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()); });

from http://programming-hyerim.tistory.com/63 by ccl(A) rewrite - 2021-11-03 16:01:37