Java IntStream 변환

1. 소개

이 빠른 자습서에서는 다른 유형으로의 IntStream 변환 과 관련된 모든 가능성을 살펴볼 것 입니다.

이 튜토리얼을 보완하기 위해 boxing 및 unboxing 또는 반복에 대한 흥미로운 읽기를 권장합니다.

2. IntStream 에서 배열로

의 우리가 변환 할 수있는 방법을 탐구 시작하자 에서 IntStream의 배열로 객체 INT .

이 예를 위해 처음 50 개의 짝수를 생성하고 결과적으로 배열에 저장해 보겠습니다.

@Test public void intStreamToArray() { int[] first50EvenNumbers = IntStream.iterate(0, i -> i + 2) .limit(50) .toArray(); assertThat(first50EvenNumbers).hasSize(50); assertThat(first50EvenNumbers[2]).isEqualTo(4); }

먼저 0에서 시작하여 각 요소에 2를 더하여 반복되는 정수의 무한 스트림을 만들어 봅시다. 그 직후 에이 작업을 종료하기 위해 중간 작업 제한 을 추가해야합니다 .

마지막으로 종료 작업 collect 를 사용 하여이 스트림 을 배열 로 수집합니다 .

이 배열 생성 스트레이트 포워드 방법 INT.

3. IntStream목록

의 지금 변환하자 IntStream을 A와 목록정수 .

이 경우 예제에 더 많은 다양성을 추가하기 위해 iterate 메소드 대신 메소드 범위 를 사용합시다 . 이 메서드는 int 0에서 int 50 까지 IntStream 을 생성합니다 (개방 범위이므로 포함되지 않음).

@Test public void intStreamToList() { List first50IntegerNumbers = IntStream.range(0, 50) .boxed() .collect(Collectors.toList()); assertThat(first50IntegerNumbers).hasSize(50); assertThat(first50IntegerNumbers.get(2)).isEqualTo(2); }

이 예에서는 range 메소드를 사용 합니다 . 여기서 가장 악명 높은 부분은 boxed 메서드를 사용 하는 것입니다. 이름 에서 알 수 있듯이 IntStream의 모든 int 요소를 boxing 하고 Stream 을 반환합니다 .

마지막으로 콜렉터를 사용하여 정수 목록을 가져올 수 있습니다 .

4. IntStream 에서 문자열로

우리의 마지막 주제를 들어, 우리가 얻을 수있는 방법을 알아 보자 문자열 에서 IntStream을 .

이 경우 처음 3 개의 정수 (0, 1, 2) 만 생성합니다.

@Test public void intStreamToString() { String first3numbers = IntStream.of(0, 1, 2) .mapToObj(String::valueOf) .collect(Collectors.joining(", ", "[", "]")); assertThat(first3numbers).isEqualTo("[0, 1, 2]"); }

먼저이 경우 IntStream.of () 생성자를 사용하여 IntStream 을 생성합니다 . Stream 을 얻은 후 어떻게 든 IntStream 에서 Stream생성 해야합니다 . 따라서, 우리는 중간 사용할 수 있습니다 mapToObj의 방법 걸릴 것 IntStream을 하고 돌아갑니다 스트림을 호출 된 메소드에 매핑 결과 객체의 유형을.

마지막으로 Stream 을 취하고 구분 기호를 사용하고 선택적으로 접두사와 접미사를 사용하여 Stream 의 각 요소를 추가 할 수 있는 수집기 결합 을 사용합니다.

5. 결론

이 빠른 자습서에서는 IntStream 을 다른 유형 으로 변환해야 할 때 모든 대안을 탐색했습니다 . 특히 배열, ListString 생성에 대한 예제를 살펴 보았습니다 .

그리고 항상 그렇듯이 샘플 코드는 GitHub에서 사용할 수 있습니다.