본문 바로가기
java

스트림의 이해와 생성

by improve 2024. 2. 15.

● 첫번째 예제

package org.example;

import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {

        int ar[] = {1, 2, 3, 4, 5};
        IntStream stm1 = Arrays.stream(ar);
        stm1.forEach(System.out::println); // 매서드 참조형 식
        // stm1.forEach(s -> System.out.println(s)); 이거와 똑같다
        // Arrays.steam(ar).forEach(value -> System.out.println(value))
        // 똑같다.
        System.out.println();

        List<Integer> list = Arrays.asList(11,22,33,44,55);
//        Stream<Integer> stm2 = list.stream();
//      stm2.forEach(System.out::println);
        list.stream().forEach(System.out::println);
    }
}

 

 

● 두번째 예제

package org.example;

import java.util.Arrays;
import java.util.stream.IntStream;
import java.util.stream.Stream;

public class Main2 {
    public static void main(String[] args) {
        int ar[] = {1,2,3,4,5};
        IntStream stm1 = Arrays.stream(ar);
        IntStream stm2 = stm1.filter(value -> value%2 ==1);
        int sum = stm2.sum();
        System.out.println(sum);

        System.out.println(Arrays.stream(ar).filter(value -> value%2 ==1).sum());

        sum = Stream.of(1,2,3,4,5)
                .filter(integer -> integer%2 ==1)
                .reduce(0,(integer, integer2) -> integer += integer2);
                // reduce 뒤에가 연산되지않으면 0으로 나타낸다. 
        System.out.println(sum);
    }
}

 

줄여서 쓸 수 있다.(매서드 체이닝 기법)

 

● 세번째 예제

package org.example;

import java.util.Arrays;
import java.util.stream.Stream;

public class Main3 {
    public static void main(String[] args) {
        String str[]  = {"홍길동","김길동","박길동"};

        Stream<String> stream = Arrays.stream(str);
        Arrays.stream(str).forEach(s -> System.out.println(s)); // 제네릭 타입이 스트링인게 나온다

        System.out.println();
        Arrays.stream(str).forEach(System.out::println); // 타입이 똑같으면 이 매서드 기법을 쓸 수 있다.

        System.out.println();

        for (String temp : str){
            System.out.println(temp);
        }

    }
}

 

 

 

'java' 카테고리의 다른 글

스트림 2  (0) 2024.02.15
필터링 과 맵핑  (0) 2024.02.15
미리 정의되어 있는 함수형 인터페이스  (1) 2024.02.13
람다와 함수형 인터페이스  (1) 2024.02.08
람다의 방식  (0) 2024.02.07