프로그래밍/Java

Stream 관련 - 예전 방식 vs Stream

seungdols 2015. 9. 18. 11:20

요즘 Java8 즉, Functional Programming에 관심이 많아 Kevin님의 동영상으로 공부중입니다.

아마 조만간, Java in Action을 구매해야 할 듯 합니다.

람다, 스트림등이 너무 강력해서 좋네요. ㅎㅎ 아마 그래서 Spring의 경우도 4.0으로 진입이 빨라지지 않았나 싶네요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class StreamPractice {
    public static void main(String[] args) {
 
        Stream.of(1,2,3,4,5).forEach(i-> System.out.println(i + " "));
 
        final List numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
        final List result = new ArrayList<>();
        for(final Integer number : numbers)
        {
 
            if(number > 3 && number < 9)
            {
                final Integer newNumber = number * 2;
                if (newNumber > 10) {
                    result.add(number);
                }
            }
        }
 
        System.out.println("Imperative Result : " + result);
        //functional programming에서는 null reference가 없다
        /*
            Functional Expression이 performance상에 문제는 크게 없다.
            Stream은 그냥 Collection Builder가 아닌 lazy Collection Builder로 게으른 컬렉션 빌더이다.
            처리를 게으르므로 성능상 효율적이다.(불필요한 연산이 생기지 않는다.)
         */
        System.out.println("Functional Result : " +
                numbers.stream()
                        .filter(number -> number > 3)
                        .filter(number -> number < 9)
                        .map(number -> number * 2)
                        .filter(number -> number > 10)
                        .findFirst()
        );
    }
 
}
cs

https://www.youtube.com/channel/UCsOJxLxzQl8IbwGS-Cp5t8w



  •  무단 수정 및 배포는 금지합니다. 
  •  모든 내용은 본 블로그 운영자가 정리한 내용입니다. 
  •  참조한 정보에 대해서는 출처를 남기고 있습니다.
  •  틀린 내용 / 오류가 포함된 내용은 댓글로 남겨주세요.
  •  choiseungho0822@gmail.com 보내주셔도 됩니다.
  •  Seungdols Wiki 운영중입니다.


반응형