-
[Java] Map 전체 출력(entrySet, keySet, Iterator, Lambda, Stream)Java/Collection(컬렉션) 2018. 12. 27. 14:55반응형
목차
Map 객체의 내용을 출력하기 위한 방법
1. entrySet()
entrySet() 메서드는 Map에서 모든 Entry(Key-Value 쌍)를 가져와 Set 객체로 반환합니다. foreach 루프를 사용하여 각 Entry에 순차적으로 접근할 수 있습니다.
Map<String, String> map = new HashMap<>(); map.put("key01", "value01"); map.put("key02", "value02"); map.put("key03", "value03"); map.put("key04", "value04"); map.put("key05", "value05"); // 방법 01 : entrySet() for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("[key]:" + entry.getKey() + ", [value]:" + entry.getValue()); }
2. keySet()
keySet() 메서드는 Map의 모든 key를 가져와 Set 객체로 반환합니다. key를 foreach 루프를 사용하여 순차적으로 접근하고, 각 key를 사용하여 value에 접근할 수 있습니다.
Map<String, String> map = new HashMap<>(); map.put("key01", "value01"); map.put("key02", "value02"); map.put("key03", "value03"); map.put("key04", "value04"); map.put("key05", "value05"); // 방법 02 : keySet() for (String key : map.keySet()) { String value = map.get(key); System.out.println("[key]:" + key + ", [value]:" + value); }
3. entrySet().iterator()
entrySet() 메서드로 가져온 Set에 대한 Iterator를 사용하여 각 Entry에 접근할 수 있습니다.
Map<String, String> map = new HashMap<>(); map.put("key01", "value01"); map.put("key02", "value02"); map.put("key03", "value03"); map.put("key04", "value04"); map.put("key05", "value05"); // 방법 03 : entrySet().iterator() Iterator<Map.Entry<String, String>> iteratorE = map.entrySet().iterator(); while (iteratorE.hasNext()) { Map.Entry<String, String> entry = (Map.Entry<String, String>) iteratorE.next(); String key = entry.getKey(); String value = entry.getValue(); System.out.println("[key]:" + key + ", [value]:" + value); }
4. keySet().iterator()
keySet() 메서드로 가져온 Set에 대한 Iterator를 사용하여 각 Key에 접근하고, 각 Key를 사용하여 Value에 접근할 수 있습니다.
Map<String, String> map = new HashMap<>(); map.put("key01", "value01"); map.put("key02", "value02"); map.put("key03", "value03"); map.put("key04", "value04"); map.put("key05", "value05"); // 방법 04 : keySet().iterator() Iterator<String> iteratorK = map.keySet().iterator(); while (iteratorK.hasNext()) { String key = iteratorK.next(); String value = map.get(key); System.out.println("[key]:" + key + ", [value]:" + value); }
5. Lambda 사용
람다 표현식(Lambda Expression)과 함께 forEach 메서드를 사용하여 Map의 Key, Value에 접근할 수 있습니다.
Map<String, String> map = new HashMap<>(); map.put("key01", "value01"); map.put("key02", "value02"); map.put("key03", "value03"); map.put("key04", "value04"); map.put("key05", "value05"); // 방법 05 : Lambda 사용 map.forEach((key, value) -> { System.out.println("[key]:" + key + ", [value]:" + value); });
6. Stream 사용
Stream API를 사용하면, Map의 Entry에 순차적으로 접근할 수 있습니다.
Map<String, String> map = new HashMap<>(); map.put("key01", "value01"); map.put("key02", "value02"); map.put("key03", "value03"); map.put("key04", "value04"); map.put("key05", "value05"); // 방법 06 : Stream 사용 map.entrySet().stream().forEach(entry-> { System.out.println("[key]:" + entry.getKey() + ", [value]:"+entry.getValue()); }); // Stream 사용 - 내림차순 map.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEach(entry-> { System.out.println("[key]:" + entry.getKey() + ", [value]:"+entry.getValue()); }); // Stream 사용 - 오름차순 map.entrySet().stream().sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())).forEach(entry-> { System.out.println("[key]:" + entry.getKey() + ", [value]:"+entry.getValue()); });
반응형'Java > Collection(컬렉션)' 카테고리의 다른 글
[JAVA] 배열의 합 구하기 (1) 2024.09.17 [JAVA] 배열 검색하기 (0) 2024.09.17 [JAVA] 배열 정렬하기 : 오름차순, 내림차순 (1) 2024.09.17 [Java] 배열(Array)을 리스트(List)로 변환 - 반복문, Arrays, Collection, Stream (0) 2023.05.06 [Java] List 중복 제거 (HashSet, TreeSet, Stream) (0) 2019.12.16