728x90
반응형
1. 중간 연산 (Intermediate Operation)
- 특징: 연산 결과가 다시 스트림입니다. 그래서 계속 뒤에
.을 찍고 다른 연산을 이어 붙일 수 있어요 (메서드 체이닝). - 특징 2: 지연 연산(Lazy)입니다. 최종 연산이 호출되기 전까지는 아무 일도 안 하고 기다립니다.
| 연산 | 설명 |
|---|---|
filter() |
조건에 맞는 요소만 골라냄 |
map() |
요소를 다른 형태로 변환함 |
sorted() |
요소들을 정렬함 |
distinct() |
중복을 제거함 |
limit() |
앞에서부터 n개만 자름 |
peek() |
중간 결과 확인 (디버깅용) |
2. 최종 연산 (Terminal Operation)
- 특징: 스트림을 닫고 결과(숫자, 객체, 값 등)를 내놓습니다.
- 특징 2: 한 번 실행하면 해당 스트림은 재사용할 수 없으며 끝납니다.
| 연산 | 설명 | 결과 타입 |
|---|---|---|
count() |
요소의 총 개수를 셈 | long |
collect() |
결과를 리스트, 셋 등으로 모음 | List, Map 등 |
forEach() |
각 요소를 출력하거나 처리함 | void |
anyMatch() |
조건에 맞는 게 하나라도 있는지 확인 | boolean |
allMatch() |
모든 요소가 조건을 만족하는지 확인 | boolean |
reduce() |
모든 요소를 하나로 합침 (합계 등) | Optional 또는 값 |
💡 한눈에 보는 요약
- 스트림 생성: 반죽과 팥을 준비한다. (
Arrays.stream) - 중간 연산: 팥을 넣고, 모양을 잡고, 탄 부분을 깎아낸다. (
map,filter)
- 이때까지는 붕어빵이 완성된 게 아닙니다. 그냥 과정일 뿐이죠.
- 최종 연산: 불을 켜서 구워낸 후 접시에 담는다. (
count,collect)
- 드디어 결과물이 나오고 기계는 멈춥니다.
⚠️ 주의할 점
filter나 map까지만 쓰고 세미콜론(;)을 찍으면, 자바는 "어? 준비만 하고 요리를 안 하네?" 하고 그냥 넘어가 버립니다.
728x90
반응형
'백엔드개발 > 헷갈리는기초개념' 카테고리의 다른 글
| [Java 기초] int ↔ String 형변환 (0) | 2025.07.07 |
|---|---|
| [Java 기초] int와 Integer 무슨 차이인지 정확히 이해하기 (2) | 2025.07.07 |
| [Java 기초] 이차원 배열 x축 y축 헷갈리는 이유 (0) | 2025.07.01 |
| [Java] java.lang.ArithmeticException: / by zero 에러나는 이유 및 해결 방법 (1) | 2025.04.25 |
| [java] 추상클래스와 일반 클래스의 차이(abstract / class) (0) | 2024.04.30 |