개발/JAVA

[Java] int[] -> Integer[] -> ArrayList<Integer> -> int[]

mabb 2023. 6. 8. 13:30
반응형

▶int[]을 Integer[]로 변환하기

int[] arr = new int[5];
Integer[] integerArr = Arrays.stream(arr).boxed().toArray(Integer[]::new);

▶Integer[]을 ArrayList<Integer>로 변환하기

ArrayList<Integer> list = new ArrayList<>(Arrays.asList(integerArr));

▶ArrayList<Integer> 를 int[]로 변환하기

int[] arr2 = list.stream().mapToInt(Integer::valueOf).toArray();

 

 

※람다식 (Lambda)
자바는 람다식을 이용하여 함수 스타일을 지원한다. 람다식은 함수적 인터페이스(Functional Interface)의 익명구현객체로 생성되어 작동한다. 함수적 인터페이스에는 구현해야하는 메소드가 한 개뿐인데 해당 메소드의 매개변수, 리턴타입에 맞춰서 (매개변수) -> (코드) 의 형태로 간략하게 작성한다.

※ 메소드 참조( Method References)
메소드를 참조하여 매개변수 및 리턴 타입을 알아내어 람다식에서 불필요한 매개 변수를 제거할 때 사용한다. 람다식과 마찬가지로 함수적 인터페이스의 익명구현객체로 생성되어 작동한다.
람다식 : (left, right) -> Math.max(left,right);
메소드참조: Math::max

참조: 이것이 자바다

toArray(Integer[] :: new) 의 경우 Stream의  toArray() 메소드는
<A> A[] toArray(IntFunction<A[]> generator) 의 시그니처를 갖는다.

반응형