Java의 Stream은 Java 8에서 도입된 기능으로, 컬렉션(ex: List, Set, Map) 및 배열의 요소를 다룰 수 있는 API이다. Stream은 다양한 방법으로 생성할 수 있다.
//List부터 Stream 생성
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();
//Array로부터 Stream 생성
String[] array = {"a", "b", "c"};
Stream<String> stream = Arrays.stream(array);
//값으로 부터 Stream 생성
Stream<String> stream = Stream.of("a", "b", "c");
🔍Stream 중간연산
Stream의 중간연산을 이용하여 다양한 데이터를 원하는 방식으로 변환하거나 필터링할 수 있다.
//Filter: 요구조건을 충족하는 요소들을 필터링
stream.filter(s -> s.startsWith("a"));
//Map: 각 요소를 변환하여 새로운 스트림을 생성합니다
stream.map(String::toUpperCase);
//Sort: 요소들 정렬
stream.sorted();
🎬Stream 최종연산
//forEach(): 각 요소에 대해 지정된 작업을 수행한다
stream.forEach(System.out::println);
//collect(): 스트림의 요소들을 컬렉션으로 변환하거나 합치는 작업을 수행한다
List<String> result = stream.collect(Collectors.toList());
//count(): 스트림의 요소 개수를 세어값을 반환한다.
long count = stream.count();
🔡Example
다음은 Stream API를 사용하여 리스트에서 특정 조건을 만족하는 요소들을 필터링하고, 대문자로 변환한 뒤, 정렬하여 출력하는 예제이다. 이 코드는 b를 시작하는 요소를 찾아 대문자로 변경하여 출력을 한다. 결과는"BANANA"를 출력합니다.
List<String> list = Arrays.asList("apple", "banana", "cherry", "date");
list.stream()
.filter(s -> s.startsWith("b"))
.map(String::toUpperCase)
.sorted()
.forEach(System.out::println);
모던자바(자바 8)에 추가된 기능을 이용하면 아직은 익숙하지 않지만 다양한 데이터 타입을 사용하는데 유이 할 거 같다.
'Java' 카테고리의 다른 글
[Java] 열거형 Enum (0) | 2024.08.16 |
---|---|
[Java]인터페이스 (0) | 2024.08.12 |
[Java]실행시간 계산법 (0) | 2024.08.05 |
[Java]비교방법 equals()와 ==의 차이 (0) | 2024.08.02 |
[Java]HashMap 사용법 (0) | 2024.07.31 |