Stream
- 병렬성 (parallel 연산자)을 가질 수 있다.
- 병렬처리가 가능하므로 기존의 방법보다 빠르다.
- stream 은 내부적으로 지연된 실행을 원칙으로 한다.
-> 실제 연산을 하기 전 까지는 수행하지 않는다.
-> 지연된 연산
- 생성되는 모든 객체는 불변객체가 아니라 새로 생성해서 사용한다.
- 병렬 객체의 이슈에 대해 대응이 가능하다.
- public class Ex4 {
- public static void main(String[] args) throws IOException {
- String contetns = new String(Files.readAllBytes(Paths.get("text.txt")), StandardCharsets.UTF_8);
- List<String> word = Arrays.asList(contetns.split("[\\P{L}}]+"));
- int count = 0;
- for(String w : word) {
- if(w.length() > 10) {
- count++;
- }
- }
- // long lc = word.stream().filter(w->w.length() > 10).count(); // 파이프라인을 통해 사용. C#LINQ
- long lc = word.parallelStream().filter(w->w.length() > 10).count(); // 파이프라인을 통해 사용. C#LINQ
- Stream<String> list = word.stream().map(String::toLowerCase);
- Stream<Character> firstChar= word.stream().map(s ->s.charAt(0));
- System.out.println(count + lc);
- list.forEach(System.out::println);
- firstChar.forEach(System.out::println);
- }
- }
'java' 카테고리의 다른 글
Java reflection example. (0) | 2014.10.07 |
---|---|
Java String equals / == 속도 비교 (0) | 2014.07.14 |
Java 8 신기능 정리 - Default Method (0) | 2014.07.02 |
Java 8 신기능 정리 - Method Reference, Construct Reference (0) | 2014.07.02 |
Java 8 신기능 정리 - Lambda Expression (0) | 2014.07.01 |