스트림이란?
Java8에서 도입된 새로운 기능
간결하고 가독성 있는 코드 작성 가능
주요 특징
- 데이터의 흐름을 표현하여, 일관되고 간결한 방식으로 다룰 수 있음
- 내부 반복 요소들을 줄여 편리
- 결과가 필요한 시점까지 연산을 수행하지 않음 > 성능 최적화
예시
스트림을 사용하여 배열에서 짝수를 걸러내고, 역순으로 정렬
import java.util.Arrays;
import java.util.Comparator;
public class Stream {
public static void main(String[] args) {
int[] data = {5, 6, 4, 2, 3, 1, 1, 2, 2, 4, 8};
int[] result = Arrays.stream(data) // IntStream을 생성한다
.boxed() // IntStream을 Stream<Integer>로 변경한다.
.filter((a) -> a % 2 == 0) // 짝수만 뽑아낸다.
.distinct() // 중복을 제거한다.
.sorted(Comparator.reverseOrder()) // 역순으로 정렬한다.
.mapToInt(Integer::intValue) // Stream<Integer>를 IntStream으로 변경한다.
.toArray() // int[]배열로 반환한다.
;
for (int value : result) {
System.out.print(value + " ");}
}
}