티스토리 뷰
출처: https://www.tutorialspoint.com/java9/java9_stream_api_improvements.htm
스트림은 오브젝트들의 순차처리를 결합하는 기능을 사용하는 개발자들을 도와주기 위해서 소개되었습니다. Java 9 에서는 몇몇의 메소드들이 추가되면서 더욱 좋아졌습니다.
default Stream<T> takeWhile(Predicate<? super T> predicate)
takeWhile 메소드는 false 를 반환하는 predicate 를 만날때 까지의 모든 값들을 반환합니다. 반환된 스트림은 입력된 순서와 동일한 순서의 스트림입니다.
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); } }
abc
default Stream<T> dropWhile(Predicate<? super T> predicate)
dropWhile 은 시작부터 predicate 가 true 를 반환하는 모든 값들을 버리고 false 를 만난 후 부터는 true 를 반환하는 값들을 스트림으로 생성해서 반환합니다.
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); } }
ef
static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)
iterate 는 for 문과 같다고 생각하면 됩니다. for을 기준으로 설명해 보면 for (seed; hasNext; next) 와 같습니다.
import 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::print); } }
3 6 9
static <T> Stream<T> ofNullable(T t)
ofNullable 은 null 을 체크하기 위해서 나온 것으로 null이 입력될 경우 빈 스트림을 반환하여 NullPointerException 발생을 피할 수 있습니다.
import java.util.stream.Stream; public class Tester { public static void main(String[] args) { long count = Stream.ofNullable(100).count(); System.out.println(count); count = Stream.ofNullable(null).count(); System.out.println(count); } }
1 0
'IT > 개발' 카테고리의 다른 글
dash -> bash (0) | 2019.04.16 |
---|---|
Java9 - Collection Factory Methods (0) | 2019.03.14 |
Java9 - Module System (0) | 2019.03.12 |
Java default timezone (0) | 2019.03.07 |
Java8 Feature (0) | 2019.03.04 |