자바
Java 배열을 List로 변경하는 방법
땅부자몽구스
2021. 10. 17. 22:16
Java 배열 객체(int[], String[] 등)는 Arrays.asList() 메서드를 이용하면 List로 변경이 가능하다.
String[] stringArray = {"a", "b", "c"};
List<String> stringList = Arrays.asList(stringArray);
Arrays.asList()의 경우 return 타입이 java.util.Array.ArrayList로
java.util.ArrayList와는 다르며, immutable한 객체이다.
따라서 아래와 같이 java.util.ArrayList로 만들어주어야 한다.
String[] stringArray = {"a", "b", "c"};
List<String> stringList = Arrays.asList(stringArray);
ArrayList<String> stringArrayList = new ArrayList<>(stringList);
primitive 타입의 배열인 경우 Arrays.asList()를 사용하면 List<래퍼 클래스>로 받을 수 없다.
int[] intArray = {1, 2, 3};
// 컴파일 에러
// List<Integer> intList = Arrays.asList(intArray);
따라서 primitive 타입의 배열은 반복문을 이용하거나 stream을 이용한 박싱을 해야한다.
int[] intArray = {1, 2, 3};
ArrayList<Integer> intArrayList = new ArrayList<>();
for (int i : intArray) {
intArrayList.add(i);
}
// 또는
intArrayList = Arrays.stream(intArray).boxed().collect(Collectors.toList());
// 또는
intArrayList = IntStream.of(intArray).boxed().collect(Collectors.toList());