ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] int Array to Integer List & Integer List to int Array
    카테고리 없음 2024. 8. 14. 15:39

     

    자주 쓰이는

    원시타입의 배열을 참조타입의 리스트로 변환하는 방법과

    그 반대인 참조타입의 리스트를 원시타입의 배열로 변환하는 방법을 기록하려고 한다.

     

    해당 글에서는 원시 타입의 int와 참조 타입의 Integer를 이용하겠다.

     

    첫 번째,

    int 형 배열을 Integer 형 리스트로 바꾸는 방법이다.

     

    ...
    
    int[] arr = { 1, 2, 3, 4, 5 };
    
    List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
    
    ...

     

    단순히 Arrays.asList() 함수를 사용해도 되지만,

    이는 고정된 크기의 리스트를 반환하여 list에 새로운 값을 추가하게 되면 예외가 발생하게 된다.

    (또한, 리스트의 값을 변경하면 원본 배열의 값도 변경된다.)

    이를 막기 위해, Stream을 이용하여 새로운 ArrayList 객체를 생성하여 반환한다.

    이 과정에서 List에는 참조 타입이 들어가야 하므로

    int를 Integer로 형 변환시켜준다.

    그 과정이 바로 boxed 함수이다.

     

     

    두 번째,

    Integer 리스트를 int 배열로 바꾸는 방법이다.

     

    ...
    
    List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
    
    int[] arr = list.stream().mapToInt(Integer::intValue).toArray();
    
    
    ...

     

    이 과정에서도 Integer를 int로 바꿔줘야 하는데,

    바로 mapToInt(Integer::intValue) 부분이다.

Designed by Tistory.