ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA8 Stream - 스트림 중개 연산
    Java 2021. 3. 5. 12:51

    개요

    : 생성된 스트림은 중개 연산을 통해 또 다른 스트림으로 변환된다.

    이러한 중개연산은 스트림을 받아 스트림을 반환하므로 중개연산은 연속으로 연결할 수 있다.

     

    대표적인 중개연산

    1. 스트림 필더링 : filter(), distinct()

    2. 스트림 변환 : map(), flatMap()

    3. 스트림 제한 : limit(), skip()

    4. 스트림 정렬 : sorted()

    5. 스트림 연산 결과 확인 : peek()

     

     

    스트림 필터링

     

    IntStream stream1 = IntStream.of(1,2,3,4,5,5,6,5,7,8);
    IntStream stream2 = IntStream.of(1,2,3,4,5,5,6,5,7,8);

    stream1.distinct().forEach(e->System.out.print(e+" "));    //중복된 요소 제거
    Sysetm.out.println();

    stream2.filter(n->n%2!=0).forEach(e->System.out.print(e + " "));    //스트림에서 홀수 만을 걸러낸다.
    실행결과
    1 2 3 4 5 6 7 8

    1 3 5 5 5 7

     

    스트림 변환

    map()메서드는 해당 스트림의 요소들을 주어진 함수의 인자로 전달해 얻은 반환값으로 이루어진 새로운 스트림을 반환한다.

     

    Stream<String> stream = Stream.of("HTML", "CSS", "JAVA", "JAVASCRIPT");
    stream.map(s->s.length()).forEach(System.out::println);
    실행결과
    4
    3
    4
    10

     

    스트림 제한

    limit() : 첫번째 요소부터 전달된 개수 만큼의 요소로 이루어진 스트림 반환

    skip() : 첫번째 요소부터 전달된 개수 만큼의 요소를 제외한 요소로 이루어진 스트림 반환

     

    IntStream stream1 = IntStream.range(0, 10);
    IntStream stream2 = IntStream.range(0, 10);
    IntStream stream3 = IntStream.range(0, 10);
     
    stream1.skip(4).forEach(n -> System.out.print(n + " "));
    System.out.println();
     
    stream2.limit(5).forEach(n -> System.out.print(n + " "));
    System.out.println();
     
    stream3.skip(3).limit(5).forEach(n -> System.out.print(n + " "));
    4 5 6 7 8 9 
    0 1 2 3 4 
    3 4 5 6 7 

     

    스트림 정렬

    sorted() : 스트림을 comparator를 이용해 정렬한다. 비교자가 없을 경우 사전순으로 정렬하는게 디폴트.

     

    Stream<String> stream1 = Stream.of("JAVA", "HTML", "JAVASCRIPT", "CSS");
    Stream<String> stream2 = Stream.of("JAVA", "HTML", "JAVASCRIPT", "CSS");
     
    stream1.sorted().forEach(s -> System.out.print(s + " "));
    System.out.println();
     
    stream2.sorted(Comparator.reverseOrder()).forEach(s -> System.out.print(s + " "));
    CSS HTML JAVA JAVASCRIPT 
    JAVASCRIPT JAVA HTML CSS 

     

Designed by Tistory.