일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- github
- 컴퓨터과학
- 뮤텍스
- 스터디
- 깃
- CS
- 우리카드
- package-private
- 정보처리기사
- 알고리즘
- 공채
- IT
- Public
- java
- OS
- 디지털
- 신입사원
- 자바
- Effective Java
- 개발
- 메모리
- 컴퓨터공학
- 운영체제
- 세마포어
- 신입
- 이펙티브 자바
- 깃허브
- spring
- 프로그래밍
- 스프링
Archives
- Today
- Total
주니어 개발자 성장기
Arrays.stream 본문
개요
Arrays.stream()
은 자바 8버전부터 추가된 것으로 매개변수로 배열 하나를 받는다.
double[]
, int[]
, long[]
를 매개 변수로 줄 경우
각 각 DoubleStream
, IntStream
, LongStream
을 반환해준다.
위에 언급된 타입을 제외하고도 특정 타입 T
의 배열 T[]
를 매개 변수로 지정하면, Stream
DoubleStream
IntStream
LongStream
일반 Stream<T>
와 같이 여러가지 메서드를 사용할 수 있으며 다음과 같은 메서드도 사용할 수 있다.
- sum
- max
- min
- average
- forEach
- toArray
- map, mapToInt, mapToLong, mapToDouble, mapToObj
참고로, primitive type으로 배열을 만드려면 mapToInt, mapToLong, mapToDouble 메서드를 사용한 뒤 toArray()를 호출해주면 된다.
int[] array = list.stream().filter(i -> i > 5).mapToInt(i -> i).toArray();
reference type은 map에 제공하는 함수형 인터페이스의 리턴값을 통해 타입 추론이 일어난다.
Some[] somes = list.stream().map(Some::new).toArray(Some[]::new);
주의
대부분의 상황에서는 for-loop가 (특히, 싱글 쓰레드에서) 더 빠르다고 하니 가능하면 for-loop를 사용하자.
이유는 JIT compiler가 지난 수십년간 for-loop에 잘 최적화 되었기 때문이라고 한다.
참고:
Arrays (Java Platform SE 8 )
DoubleStream (Java Platform SE 8 )
IntStream (Java Platform SE 8 )
LongStream (Java Platform SE 8 )
Stream (Java Platform SE 8 )
스트림은 항상 좋을까?
'Java > 기초' 카테고리의 다른 글
[짤막 자바 상식] Stack vs Deque - 코테에서 뭘 쓰지? (0) | 2024.05.05 |
---|---|
중첩 클래스 참고자료 (0) | 2023.11.11 |
Effective final (0) | 2023.08.21 |