ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] Map 전체 출력(entrySet, keySet, Iterator, Lambda, Stream)
    Java/기타 2018. 12. 27. 14:55
    반응형

    Map 객체의 내용을 출력하기 위한 방법

    방법 01. 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());
    }

     

    방법 02. 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);
    }

     

    방법 03. 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);
    }

     

    방법 04. 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);
    }

     

    방법 05. 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);
    });

     

    방법 06. 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());
    });

     

    반응형

    댓글

Designed by Tistory.