[JAVA] Stream API

yoon·2023년 12월 11일
0

java

목록 보기
14/19
post-thumbnail

✅ Stream API

배열을 스트림으로 변환한다는 것은 배열의 원소들을 스트림 형태로 변환하여 처리할 수 있게 하는 것
스트림은 원본 데이터를 변경하지 않고, 필요한 데이터 처리 작업을 적용한 결과를 생성
인덱스를 통한 직접 접근은 제공하지 않는다.

  • 스트림을 사용하여 필터링, 매핑, 정렬 등 다양한 데이터 처리 작업 가능
  • 최종 결과를 배열이나 컬렉션으로 변환 가능
  • 데이터 처리 작업을 연속적인 파이프라인으로 나타낼 수 있어 가독성이 높고, 병렬 처리 쉽게 구현 가능
int[] numbers = {1,2,3,4,5,6};
int sumOfEvens = Arrays.stream(numbers)
						.filter(n->n%2==0)
                        .sum();

✔ 스트림 연산 종류

  • 중간연산 : 스트림을 처리하고, 다른 스트림을 반환
    → filter(), map(), sorted(), distinct(), limit(), skip()

  • 최종연산 : 스트림을 처리하고 결과를 반환
    → forEach(), count(), collect(), reduce(), min(), max()

  • 스트림종료 : 스트림의 자원을 해제하고, 최종결과 반환
    → close(), toArray()

✔ example

  • 짝수 원소 제곱의 합 구하기
List<Integer> nums = Arrays.asList(1,2,3,4,5);
        int sum = nums.stream()
                .filter(n->n%2==0)
                .map(n->n*n)
                .reduce(0, Integer::sum);
                // = reduce(0, (x,y)->(x+y))
  • 스트림의 문자열 원소를 대문자로 변환하기
List<String> strList = Arrays.asList("apple","lemon","orange");
        List<String> newStrList = strList.stream()
                .map(String::toUpperCase) //=map(s->s.toUpperCase())
                .collect(Collectors.toList());
        System.out.println(newStrList);
profile
하루하루 차근차근🌱

0개의 댓글