Stream이란?
컬렉션, 배열등의 저장 요소를 하나씩 참조하며 함수형 인터페이스(람다식)를 적용하며 반복적으로 처리할 수 있도록 해준다.
파이프 라인 방식의 코딩이 가능하도록 한다
간단 코드로 맛보기
// 리스트 출력
// 기존 방식
for (Integer num : list) {
System.out.println(num);
}
// Stream 사용
list.stream().forEach(System.out::println);
// 짝수 출력
// 기존 방식
for (Integer num : list) {
if(num % 2 == 0) System.out.println(num);
}
// Stream 사용
list.stream().filter(n -> n % 2 == 0).forEach(System.out::println);
왜 쓰는가?
불필요하게 사용되는 반복문 조건문을 줄일수 있다
코드가 길어질 경우 알아보기가 쉽다.
병렬 처리가 간편하다
stream()을 parallelStream()으로 변경하면 병렬 처리가 된다.
예제
짝수 리스트 생성 후 출력
// 기존 방식
List<Integer> evenList = new ArrayList<>();
for (Integer num : list) {
if(num % 2 == 0){
evenList.add(num);
}
}
for (Integer even : evenList) {
System.out.println(even);
}
// Stream 사용
List<Integer> evenList2 = list.stream().filter(n -> n % 2 == 0).collect(Collectors.toList());
evenList2.stream().forEach(System.out::println);
'JAVA > Java Stream' 카테고리의 다른 글
Map 반복문 (0) | 2021.04.12 |
---|---|
Map Parallel (Map 병렬처리) 방법 (0) | 2021.03.30 |
Stream 객체 값 변경 예제 (0) | 2020.11.30 |
Java 1.8 CompletableFuture 모든 동작 완료 확인 (0) | 2020.06.04 |
Stream 함수 (0) | 2020.06.04 |