ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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());

    댓글

Designed by Tistory.