본문
[2018.02.06] 34. 컬렉션 VS 스트림 (Java 8)
컴퓨터/이론: 개발 2018. 2. 6. 16:21
도입
이번 포스팅에서는 지금 공부하고 있는 Java8의 스트림과 Java8 이전의 컬렉션을 비교하며 공부할 예정이다.
컬렉션과 스트림의 철학적 접근
"Java8 in Action"이라는 책으로 공부하면서 컬렉션과 스트림을 철학적으로 생각해 볼 수 있는 글이 있어서 적어 본다.
철학적인 고찰을 좋아하는 독자라면 스트림을 시간적으로 흩어진 값의 집합으로 간주할 수 있다. 반면 컬렉션은 특정 시간에 모든 것이 존재하는 공간(컴퓨터 메모리)에 흩어진 값으로 비유할 수 있다. 우리는 for-each 루프 내에서 반복자를 이용해서 공간에 흩어진 요소에 접근할 수 있다.
Java8 in Action 중 p 138
참 많은 것을 생각하게 하는 글이라고 생각한다.
해당 글을 읽은 생각을 시각화 하면
이렇게 생각한다.
외부반복 VS 내부반복
컬렉션과 스트림의 큰 차이는 외부반복과 내부반복이다.
컬렉션은 대상(타켓)을 for-each문을 통해 외부반복을 하지만 스트림은 대상(타켓)을 스트림화해 내부반복한다.
내부반복을 사용하므로 작업을 투명하고 병렬적으로 처리하거나 더 최적화된 다양한 순서로 처리 가능하다.
#컬렉션 #스트림 #외부반복 #내부반복
'컴퓨터 > 이론: 개발' 카테고리의 다른 글
코틀린(Kotlin) 기본 문법 - 2 (0) | 2018.03.06 |
---|---|
[2018.02.12] 35. JVM, JRE, JDK (0) | 2018.02.12 |
[2018.01.26] 33. 스트림(Stream) 개념과 사용이유 (Java 8) (2) | 2018.01.26 |
[2018.01.22] 32. 함수형 인터페이스 (Java 8) (0) | 2018.01.22 |
[2018.01.19] 31. 자바 메모리 구조 (0) | 2018.01.19 |
댓글