반응형
배열을 컬렉션 프레임워크로 변환
방법 1
int[] arr = {1,2,3,4,5};
List<Integer> list1 = new ArrayList<>();
for(int i = 0 ; i<arr.length; i++)
list1.add(arr[i]);
방법 2
int[] arr = {1,2,3,4,5};
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
int 기본형 배열은 boxed()가 필요하다.
String[] strArr = {"K", "O", "M"};
List<String> strList = Arrays.stream(strArr).collect(Collectors.toList());
일반적인 객체 배열은 boxed()가 필요하지 않다.
IntStream is = IntStream.of(1,2,3,4);
List<Integer> list2 = is.collect(Collectors.toList()); // 컴파일에러
그 이유는 Arrays.stream()을 이용해서 기본형 배열을 스트림으로 바꾸게 되면, 타입이 IntStream이 된다.
IntStream을 다시 Stream<T>와 같은 형태로 만들기 위해 boxed()를 사용한다.
컬렉션 프레임워크를 배열로 변환
방법 1
List<Integer> list = Arrays.asList(1,2,3,4,5);
int[] ar = new int[list.size()];
for(int i = 0; i<list.size(); i++)
ar[i] = list.get(i);
방법 2
List<Integer> list = Arrays.asList(1,2,3,4,5);
int[] arr = list.stream().mapToInt(e->e).toArray();
배열을 컬렉션 프레임워크로 바꿀때와 마찬가지로 Stream<T>를 IntStream으로 변환 후 toArray()
반응형
'프로그래밍 > 자바' 카테고리의 다른 글
3장 연산자, 4장 조건문과 반복문, 5장 배열 (0) | 2022.07.28 |
---|---|
1장 자바, 2장 변수 (0) | 2022.07.28 |
[JAVA] 자바 메소드 참조 (0) | 2022.04.12 |
[JAVA]자바 익명 클래스와 람다식 정리 (0) | 2022.04.11 |
[JAVA] String 참조값 비교와 StringBuilder, StringBuffer 사용 이유 (0) | 2022.04.08 |