본문 바로가기

# 02/Java

[윤성우 열혈자바] 29-3. 리덕션, 병렬 스트림

반응형

리덕션과 reduce 메소드 : 최종 연산


리덕션(Reduction) 데이터를 축소하는 연산

T reduce(T identity, BinaryOperator<T> accumulator)                // Stream<T> 존재

   // BinaryOperator<T>    T apply(T t1, T t2)



public static void main(String[] args) {

   List<String> ls

     = Arrays.asList("Box", "Simple", "Complex", "Robot");

 

   BinaryOperator<String> lc = (s1, s2) -> {

      if(s1.length() > s2.length())

         return s1;

      else

         return s2;

   };

 

   String str = ls.stream()

                  .reduce("", lc);                 // 스트림  경우 "" 반환

   System.out.println(str);

}


reduce  번째 전달 인자를 스트림의  번째 데이터로 간주함에 주의!


Complex








병렬 스트림


public static void main(String[] args) {

   List<String> ls = Arrays.asList("Box", "Simple", "Complex", "Robot");

   

   BinaryOperator<String> lc = (s1, s2) -> {

      if(s1.length() > s2.length())

         return s1;

      else

         return s2;

   };

 

   String str = ls.parallelStream()   // 병렬 처리를 위한 스트림 생성

                  .reduce("", lc);

   System.out.println(str);

}



Complex



반응형