스트림
데이터의 흐름
스트림은 자바에서 데이터 컬렉션을 처리하는 데 사용되는 개념
중간 연산과 최종 연산을 통해 데이터를 처리
https://standout.tistory.com/106
중간 연산(Intermediate Operations)
중간 연산은 스트림을 다른 스트림으로 변환하거나 필터링하는 등의 작업을 수행
중간 연산은 스트림의 요소를 변경하지 않는다.
`filter`, `map`, `sorted`, `distinct`...
최종 연산(Terminal Operations)
스트림 파이프라인을 마무리하고 결과를 도출
한 번만 호출할 수 있다.
`forEach`, `collect`, `reduce`, `count`, `anyMatch`, `allMatch`, `noneMatch`...
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
// 중간 연산: 문자열 길이가 6 이상인 요소만 필터링
//`filter`, `map`, `sorted`는 중간 연산
fruits.stream()
.filter(fruit -> fruit.length() >= 6)
.map(String::toUpperCase) // 문자열을 대문자로 변환
.sorted() // 알파벳순으로 정렬
.forEach(System.out::println); // 최종 연산: 각 요소를 출력
}
}