백엔드/자바

컬렉션 - MAP 출력 방법

ksge7 2020. 8. 17. 02:25

컬렉션에서 List와 Set은 데이터를 읽어오기가 간편하다.

 

반면 Map의 경우 데이터가 키(key), 값(value)로 나뉘다보니 상대적으로 읽기가 까다롭다.

 

그래서 이번 포스트에선 Map 데이터를 읽어오는 방법에 대해 정리하고자 한다.

forEach + keySet( ) 이용하기

keySet( ) 함수를 이용해서 key만 따로 Set 형태로 저장한다.

 

그 뒤 for-each 문을 이용해서 추출한 key를 get( ) 메서드를 써서 값(value)을 얻어내면 된다.

 

public static void main(String[] args) {

        Map player = new TreeMap();

        player.put("야구", "류현진");
        player.put("축구", "손흥민");
        player.put("피겨", "김연아");

        Set player_key = player.keySet();

        for(Object i: player_key) {
            System.out.println(i+" : "+player.get(i));
        }
    }

 

 

forEach + entrySet( ) 이용하기

entrySet( ) 메서드를 이용해서 추출한 Set을 key와 value를 가진 Entry 형태로 저장한다.

 

Entry 변수에서 getkey( ), getValue( ) 메서드를 이용해서 데이터를 읽어온다.

 

단, 이때 주의할 점은 Map자료를 선언할 때 지네릭스를 써줘야 한다.

 

public static void main(String[] args) {

        Map <String, String> player = new TreeMap();

        player.put("야구", "류현진");
        player.put("축구", "손흥민");
        player.put("피겨", "김연아");

        for(Map.Entry i : player.entrySet()) {
            System.out.println(i.getKey()+" : "+i.getValue());
        }

    }

 

iterator + keySet( ) 이용하기

keySet( ) 메서드를 이용해서 map 자료의 key를 Set으로 추출한다.

 

해당 set을 이용해 iterator 객체를 호출한다.

 

while문이 반복될 때 추출한 키와 해당 키를 이용해 get() 메서드로 value를 읽어와서 출력한다.

 

public static void main(String[] args) {

        Map player = new TreeMap();

        player.put("야구", "류현진");
        player.put("축구", "손흥민");
        player.put("피겨", "김연아");

        Iterator it = player.keySet().iterator();

        while (it.hasNext()){
            Object key = (String) it.next();

            System.out.print(key);
            System.out.println(" : "+player.get(key));
        }
    }

 

iterator + entrySet( ) 이용하기

entrySet() 메서드를 이용해서 map의 key, value를 set으로 호출한다.

 

set을 이용해서 iterator 객체를 호출한다.

 

while문이 반복될 때 반환된 객체를 Entry 객체로 형 변환.

 

Entry 객체의 getKey()와 getValue() 메서드를 이용해 키와 값을 읽어와서 출력함.

 

public static void main(String[] args) {

        Map player = new TreeMap();

        player.put("야구", "류현진");
        player.put("축구", "손흥민");
        player.put("피겨", "김연아");

        Iterator it = player.entrySet().iterator();

        while (it.hasNext()){
            Map.Entry entry = (Map.Entry) it.next();

            System.out.print(entry.getKey());
            System.out.println(" : "+entry.getValue());
        }
    }