Stream 

 - 병렬성 (parallel 연산자)을 가질 수 있다.

 - 병렬처리가 가능하므로 기존의 방법보다 빠르다.

 - stream 은 내부적으로 지연된 실행을 원칙으로 한다.

 -> 실제 연산을 하기 전 까지는 수행하지 않는다.

 -> 지연된 연산

 - 생성되는 모든 객체는 불변객체가 아니라 새로 생성해서 사용한다.

 - 병렬 객체의 이슈에 대해 대응이 가능하다.


  1. public class Ex4 {
  2.  
  3.         public static void main(String[] args) throws IOException {
  4.                 String contetns = new String(Files.readAllBytes(Paths.get("text.txt")), StandardCharsets.UTF_8);
  5.                 List<String> word = Arrays.asList(contetns.split("[\\P{L}}]+"));
  6.                
  7.                 int count = 0;
  8.                 for(String w : word) {
  9.                         if(w.length() > 10) {
  10.                                 count++;
  11.                         }
  12.                 }
  13.                
  14. //              long lc = word.stream().filter(w->w.length() > 10).count(); // 파이프라인을 통해 사용. C#LINQ
  15.                 long lc = word.parallelStream().filter(w->w.length() > 10).count(); // 파이프라인을 통해 사용. C#LINQ
  16.                 Stream<String> list =  word.stream().map(String::toLowerCase);
  17.                 Stream<Character> firstChar=  word.stream().map(->s.charAt(0));              
  18.                 System.out.println(count + lc);
  19.                 list.forEach(System.out::println);
  20.                 firstChar.forEach(System.out::println);
  21.         }
  22.  
  23. }


+ Recent posts