본문 바로가기
Java

[Java] Map To List

by jn4624 2022. 4. 26.
반응형

1. List 직접 생성

public static void main(String[] args) {
    Map<Integer, Integer> map = new HashMap<Integer, Integer>();

    for( int i=0; i<7; i++ ) {
        map.put(i, i+1);
    }

    List<Integer> keyList = new ArrayList<Integer>(map.keySet());
    List<Integer> valueList = new ArrayList<Integer>(map.values());

    System.out.println(keyList);
    System.out.println(valueList);
}

Map은 keySet() 메소드와 values() 메소드를 제공하고 있으며 이 메소드를 이용하여 Map 객체를 List 객체로 변환할 수 있다.

keySet() 메소드는 Set 객체를 리턴하고 values() 메소드는 Collection 객체를 리턴한다.

 

2. Stream을 사용하여 List 생성

public static void main(String[] args) {
    Map<Integer, Integer> map = new HashMap<Integer, Integer>();

    for( int i=0; i<7; i++ ) {
        map.put(i, i+1);
    }

    List<Integer> keyList = map.keySet().stream().collect(Collectors.toCollection(ArrayList::new));
    List<Integer> valueList = map.values().stream().collect(Collectors.toCollection(ArrayList::new));

    System.out.println(keyList);
    System.out.println(valueList);
}

결과는 위와 동일하다.

다만 특정 조건으로 필터링하여 List를 구현하고 싶다면 Stream을 사용하는 편이 더 나을 수도 있다.

 

3. 특정 조건으로 필터링하여 List 생성

public static void main(String[] args) {
    Map<Integer, Integer> map = new HashMap<Integer, Integer>();

    for( int i=0; i<7; i++ ) {
        map.put(i, i+1);
    }

    List<Integer> valueList = map.values().stream()
    	.filter((number) -> !number.equals(4))
        .collect(Collectors.toCollection(ArrayList::new));

    System.out.println(valueList);
}

 

 

🙏 참조 ::

반응형