Java Stream Interface

금암동 코딩왕·2023년 11월 16일
1

Java Stream Interface

목록 보기
1/3

간단한 예시

stream interface 파먹어보기

import java.util.*;
import java.util.stream.*;

public class StreamExamples {
    public static void main(String[] args) {
        // 예제를 위한 리스트 생성
        List<String> items = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");

        // filter 예제: "b"로 시작하는 요소만 필터링
        List<String> filtered = items.stream()
                                     .filter(s -> s.startsWith("b"))
                                     .collect(Collectors.toList());
        System.out.println(filtered); // [banana]

        // map 예제: 모든 요소의 길이로 매핑
        List<Integer> itemLengths = items.stream()
                                         .map(String::length)
                                         .collect(Collectors.toList());
        System.out.println(itemLengths); // [5, 6, 6, 4, 10]

        // sorted 예제: 알파벳순으로 정렬
        List<String> sortedItems = items.stream()
                                        .sorted()
                                        .collect(Collectors.toList());
        System.out.println(sortedItems); // [apple, banana, cherry, date, elderberry]

        // forEach 예제: 각 요소를 대문자로 출력
        items.stream()
             .map(String::toUpperCase)
             .forEach(System.out::println);

        // reduce 예제: 문자열 연결
        Optional<String> concatenatedString = items.stream()
                                                   .reduce((acc, item) -> acc + ", " + item);
        concatenatedString.ifPresent(System.out::println); // apple, banana, cherry, date, elderberry

        // limit 예제: 스트림의 첫 3개 요소만 가져오기
        List<String> limitedItems = items.stream()
                                         .limit(3)
                                         .collect(Collectors.toList());
        System.out.println(limitedItems); // [apple, banana, cherry]

        // skip 예제: 처음 두 요소 건너뛰기
        List<String> skippedItems = items.stream()
                                         .skip(2)
                                         .collect(Collectors.toList());
        System.out.println(skippedItems); // [cherry, date, elderberry]

        // anyMatch 예제: "d"로 시작하는 요소가 있는지 검사
        boolean anyMatchResult = items.stream()
                                      .anyMatch(s -> s.startsWith("d"));
        System.out.println(anyMatchResult); // true

        // allMatch 예제: 모든 요소가 소문자인지 검사
        boolean allMatchResult = items.stream()
                                      .allMatch(s -> Character.isLowerCase(s.charAt(0)));
        System.out.println(allMatchResult); // true

        // noneMatch 예제: 숫자로 시작하는 요소가 없는지 검사
        boolean noneMatchResult = items.stream()
                                       .noneMatch(s -> Character.isDigit(s.charAt(0)));
        System.out.println(noneMatchResult); // true

        // findFirst 예제: 첫 번째 요소 찾기
        Optional<String> firstItem = items.stream()
                                          .findFirst();
        System.out.println(firstItem.orElse("No items found")); // apple

        // findAny 예제: 어떤 요소라도 찾기 (병렬 스트림에서 더 유용)
        Optional<String> anyItem = items.parallelStream()
                                        .findAny();
        System.out.println(anyItem.orElse("No items found")); // 결과는 실행할 때마다 달라질 수 있음
    }
}
profile
헤이 헤이 궁금증과 타협하지 말자구!!

0개의 댓글