Collections 초급

타입이 지정된 스트림 toArray

메서드 참조로 스트림을 타입이 지정된 배열로 변환합니다.

✕ Pre-Streams
List<String> list = getNames();
String[] arr = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
    arr[i] = list.get(i);
}
✓ Java 8+
String[] arr = getNames().stream()
    .filter(n -> n.length() > 3)
    .toArray(String[]::new);
이 코드에 문제가 있나요? 알려주세요.
🎯

타입 안전

Object[] 캐스트 없이 정확한 배열 타입을 얻습니다.

🔗

체이닝 가능

스트림 파이프라인의 끝에서 작동합니다.

📏

간결함

수동 루프를 하나의 표현식으로 대체합니다.

이전 방식
수동 배열 복사
모던 방식
toArray(생성자)
JDK 버전
8
난이도
초급
타입이 지정된 스트림 toArray
사용 가능

JDK 8 (2014년 3월) 이후 널리 사용 가능

toArray(IntFunction) 메서드는 스트림에서 올바르게 타입이 지정된 배열을 만듭니다. 생성자(String[]::new)는 스트림에 생성할 배열 타입을 알려줍니다.

공유 𝕏 🦋 in