나는에 대한 문서 찾고 있어요 IntStream
, 그리고 나는 볼 toArray
방법을,하지만 방법은 직접 갈하기List<Integer>
Stream
를 a 로 변환하는 방법 이 List
있습니까?
답변
IntStream::boxed
IntStream::boxed
는 회전 IntStream
에 Stream<Integer>
다음, 어떤 작업을 수행 할 수 있습니다 collect
로 List
:
theIntStream.boxed().collect(Collectors.toList())
이 boxed
메소드는의 int
프리미티브 값 IntStream
을 Integer
객체 스트림으로 변환 합니다. “복싱” 이라는 단어 는 int
⬌ Integer
변환 과정을 나타냅니다. Oracle Tutorial을 참조하십시오 .
답변
Stream에서 mapToObj ()를 사용할 수도 있습니다. IntFunction을 사용하고 지정된 함수를이 스트림의 요소에 적용한 결과로 구성된 객체 값 스트림을 반환합니다.
List<Integer> intList = myIntStream.mapToObj(i->i).collect(Collectors.toList());
답변
Eclipse 콜렉션 에서 사용 가능한 기본 콜렉션을 사용하고 권투를 피할 수 있습니다 .
MutableIntList list =
IntStream.range(1, 5)
.collect(IntArrayList::new, MutableIntList::add, MutableIntList::addAll);
참고 : 저는 Eclipse Collections에 기고자입니다.
답변
Java 8을 사용하여 각 int 요소의 제곱을 찾는 다음 예제를 찾으십시오.
IntStream ints = Arrays.stream(new int[] {1,2,3,4,5});
List<Integer> intsList = ints.map(x-> x*x)
.collect(ArrayList<Integer>::new, ArrayList::add, ArrayList::addAll);
답변
collect 메소드를 사용할 수 있습니다.
IntStream.of(1, 2, 3).collect(ArrayList::new, List::add, List::addAll);
실제로 이것은 객체 스트림에서 .collect (Collectors.toList ())를 호출 할 때 Java가 수행하는 작업과 거의 동일합니다.
public static <T> Collector<T, ?, List<T>> toList() {
return new Collectors.CollectorImpl(ArrayList::new, List::add, (var0, var1) -> {
var0.addAll(var1);
return var0;
}, CH_ID);
}
참고 : 세 번째 매개 변수는 병렬 콜렉션을 실행하려는 경우에만 필요합니다. 처음 두 개만 제공하는 순차적 인 수집으로 충분합니다.
답변
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)