요즘 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 |
|
반응형
'프로그래밍 > Java' 카테고리의 다른 글
AutoBoxing과 UnBoxing에 대한 이야기 (0) | 2015.09.19 |
---|---|
객체의 직렬화! Serialization 이야기 (0) | 2015.09.19 |
Java - EnumMap에 대한 간단한 사용 (0) | 2015.09.15 |
Java - Reflection (0) | 2015.09.15 |
Java - 객체 참조시 자료형을 인터페이스를 선호하라. (0) | 2015.09.15 |