Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 이펙티브자바
- spring batch #스프링 배치 #스프링 배치 중복 실행
- ES6
- requestbody
- ECMA2015
- Effective Java
- Babel
- javascript value
- 이펙티브 자바
- javascript 기초
- javascript type
- 자바스크립트
- javascript native
- CAS
- webpack
- java
- webstorm
- Spring
- effectivejava
- javascript
- javascript 값
- nodeJS
- JetBrains
- spring security
- you don't know js
- Spring Session
- 자바
- java.util.LinkedHashMap cannot be cast
- Redis
- Intellij
Archives
- Today
- Total
귀찮지만 만들어보자
이펙티브 자바 - 람다와 스트림(6) 본문
반환 타입으로는 스트림보다 컬렉션이 낫다
스트림에서는 일반적인 컬렉션에서 지원하는 iteration(반복)을 제공하지 않는다.
사용하지 말라는 가장 큰 이유가 이것이다.
스트림 인터페이스는 iterable 인터페이스가 정의한 추상 메서드를 포함할 뿐만아니라,
iterable 인터페이스가 정의한 방식대로 동작한다.
그럼에도 불구하고 foreach로 스트림을 반복할 수 없는 이유는 스트림이 iterable을 상속받지 않아서다.
그러니까 어설프게 스트림을 반환하는 것 보다는 컬렉션이 낫다
스트림을 반복처리하도록 만드는 방법이 아예 없진 않지만 어지간하면 지양하자...
원소의 개수가 많다면(ex. 2^30-1) 처리할 수 있는 전용 컬렉션을 구현하거나,
그것이 불가능 할 경우에 stream과 iterable 중 더 자연스러운 것을 반환하자.
'이펙티브 자바' 카테고리의 다른 글
이펙티브 자바 - 메서드(1) (0) | 2019.01.27 |
---|---|
이펙티브 자바 - 람다와 스트림(7) (0) | 2019.01.19 |
이펙티브 자바 - 람다와 스트림(5) (0) | 2019.01.19 |
이펙티브 자바 - 람다와 스트림(4) (0) | 2019.01.13 |
이펙티브 자바 - 람다와 스트림(3) (0) | 2019.01.13 |