English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 프로세스 제어

Java 배열

Java 방향 객체(I)

Java 방향 객체(II)

Java 방향 객체(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 셋

Java Set 셋

Java 입력 출력(I/O)

Java Reader/Writer

Java 다른 주제

Java 9 개선된 Stream API

Java 9 새로운 기능

Java 9 개선된 Stream API는 스트림 처리를 더 쉽게 하고 복잡한 쿼리를 작성하기 위한 수집기의 사용을 더 쉽게 합니다.

Java 9 Stream에 몇 가지 메서드를 추가했습니다: dropWhile, takeWhile, ofNullable, iterate 메서드에 추가된 오버로드 메서드.

takeWhile 메서드

문법

default Stream<T> takeWhile(Predicate<? super T> predicate)

takeWhile() 메서드는 하나의 주장을 파라미터로 사용하여 주어진 스트림의 부분집합을 반환합니다. 주장이 처음으로 false를 반환할 때까지 반환됩니다. 첫 번째 값이 주장 조건을 만족하지 않으면 공백 스트림을 반환합니다.

takeWhile() 메서드는 순서 있는 스트림에서는 takeWhile이 처음부터 가능한 많은 요소를 반환하며, 순서 없는 스트림에서는 takeWhile이 처음부터 주어진 주장을 만족하는 요소의 부분집합을 반환합니다.

import java.util.stream.Stream;
 
public class Tester {
   public static void main(String[] args) {
      Stream.of("a","b","c","","e","f").takeWhile(s-!s.isEmpty())
         .forEach(System.out::print);      
   } 
}

위 예제에서 takeWhile 메서드는 공백 문자열을 만나면 반복을 멈추고 출력 결과는 다음과 같습니다:

abc

dropWhile 메서드

문법

default Stream<T> dropWhile(Predicate<? super T> predicate)

dropWhile 메서드는 takeWhile와 반대로 작용하며, 하나의 주장을 파라미터로 사용하여 주어진 스트림의 부분집합을 반환합니다. 주장이 처음으로 false를 반환할 때까지 반환됩니다.

import java.util.stream.Stream;
 
public class Tester {
   public static void main(String[] args) {
      Stream.of("a","b","c","","e","f").dropWhile(s-> !s.isEmpty())
         .forEach(System.out::print);
   } 
}

위 예제에서 dropWhile 메서드는 공백 문자열을 만나면 반복을 시작하고 출력 결과는 다음과 같습니다:

ef

iterate 메서드

문법

static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)

이 메서드는 초기 시드 값으로 순차적(불확정적일 수도 있습니다) 스트림을 생성하고 지정된 다음 메서드를 반복적으로 적용합니다. 지정된 hasNext의 predicate가 false를 반환할 때까지 반복합니다.

java.util.stream.IntStream;
 
public class Tester {
   public static void main(String[] args) {
      IntStream.iterate(3, x -> x < 10, x -> x+ 3).forEach(System.out::println);
   } 
}

실행 출력 결과는 다음과 같습니다:

3
6
9

ofNullable 메서드

문법

static <T> Stream<T> ofNullable(T t)

ofNullable 메서드는 NullPointerExceptions 예외를 방지할 수 있으며, null 값을 피하기 위해 스트림을 확인할 수 있습니다.

지정된 요소가 null이 아니면 단일 요소 스트림을 가져오고, null이면 빈 스트림을 반환합니다.

import java.util.stream.Stream;
 
public class Tester {
   public static void main(String[] args) {
      long count = Stream.ofNullable(10).count();
      System.out.println(count);
  
      count = Stream.ofNullable(null).count();
      System.out.println(count);
   } 
}

실행 출력 결과는 다음과 같습니다:

1
0

Java 9 새로운 기능