Java에서 많이 사용하는 컬렉션인 List와 Map을 List에서 Map으로 Map에서 List로 변환하는 방법에 대해 알려보려고 합니다.
Map과 List는 모두 컬렉션입니다.
Map과 List가 다른 점은 Map은 key와 value를 지정해 사용합니다.
그리고 key를 사용해 Map에서 value를 취득할 수 있습니다.
List는 요소는 추가하고 인덱스로 요소를 취득합니다.
그리고 List는 요소의 값으로 정렬이 가능하지만 Map에서는 그냥은 안 됩니다.
Map의 key 또는 value를 List나 배열로 변환할 필요가 있습니다.
요소를 순서대로 처리해야 할 필요가 있는 경우에는 List가 적합합니다.
Map을 오름차순 또는 내림 차순으로 정렬하는 방법은 아래를 참조해 주세요.
Map에서 List로 변환
Map의 key를 List로 변환하는 방법과 Map의 value를 List로 변환하는 방법을 알아보겠습니다.
먼저 Map의 key를 List로 변환하는 방법을 보겠습니다.
Map의 key를 List로 변환하기 위해서는 keySet을 사용합니다.
keySet을 사용해 리스트로 변환하는 샘플을 보겠습니다.
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// Map 데이터 작성
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("orange", 2);
map.put("melon", 3);
// 리스르 선언후, keySet을 사용해 키를 리스트에 저장
List<String> list = new ArrayList<>(map.keySet());
System.out.println(list);
}
}
결과
[apple, melon, orange]
샘플 결과를 보면 Map에 저장한 key를 모두 List에 저장해 출력하고 있습니다.
List에 저장하기 위해서는 keySet메서드 사용하고 있습니다.
이번에는 Map의 value를 List로 변환하는 방법을 알아보겠습니다.
바로 샘플 소스를 보면서 확인해 보겠습니다.
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// Map 데이터 작성
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("orange", 2);
map.put("melon", 3);
// 리스르 선언후, values을 사용해 값을 리스트에 저장
List<Integer> list = new ArrayList<>(map.values());
System.out.println(list);
}
}
결과
[2, 1, 3]
Map에 있는 value을 List로 변환하기 위해서는 values메서드를 사용하고 있습니다.
List에는 Map에 있는 모든 value가 저장됩니다.
Map에서 List로 변환하는 방법에 대해 알아봤습니다.
실제 여러 처리를 하다 보면 Map에 있는 값을 가공해야 하는 경우 List로 변환해서 처리를 하는 경우가 생깁니다.
이러한 경우에 유용하게 사용될 수 있으니 기억해두면 좋겠습니다.
댓글