자료형 변환

Summary

// int[] -> List<Integer>
List<Integer> list = Arrays.stream(arr)
                           .boxed()
                           .collect(Collectors.toList());
 
// List<Integer> -> int[]
int[] arr = list.stream()
                .mapToInt(i -> i)
                .toArray();
 
// Integer[] -> 가변 List<Integer>
List<Integer> list = new ArrayList<>(Arrays.asList(arr));
 
// int[] -> Integer[]
Integer[] boxed = Arrays.stream(arr)
                        .boxed()
                        .toArray(Integer[]::new);
 
// String 숫자 각 자리 -> int[]
int[] nums = str.chars()
                .map(c -> c - '0')
                .toArray();
 
// String[] -> int[]
int[] nums = Arrays.stream(strArr)
                   .mapToInt(Integer::parseInt)
                   .toArray();
 
// List<String> -> String
String result = String.join("", list);
 
// List<Character> -> String
String result = list.stream()
                    .map(String::valueOf)
                    .collect(Collectors.joining());

주의점

이것만 조심

실수주의
Arrays.asList(intArr)List<Integer>가 아님
Arrays.asList(arr)크기 변경 불가, add/remove 안 됨
int[] -> List<Integer>반드시 boxed() 필요
List<Integer> -> int[]반드시 mapToInt() 필요
toArray()객체 배열은 Integer[]::new, String[]::new 필요
숫자 문자열 각 자리str.chars().map(c -> c - '0')가 제일 깔끔