Java

[Java]모던자바 Stream

codi-3 2024. 8. 9. 20:35

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