JAVA Stream 기본

2022. 4. 26. 18:56 JAVA BASIC/Lambda&Stream(람다와 스트림)

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);



출처: https://lovon.tistory.com/2?category=862727 [Java 개발 블로그]