Java 9 - Peningkatan API Stream
Streams diperkenalkan di Java untuk membantu developer melakukan operasi agregat dari serangkaian objek. Dengan Java 9, beberapa metode lagi ditambahkan untuk membuat streaming lebih baik.
takeWhile (Antarmuka Predikat)
Sintaksis
default Stream<T> takeWhile(Predicate<? super T> predicate)
Metode takeWhile mengambil semua nilai sampai predikat mengembalikan false. Ia mengembalikan, dalam kasus aliran terurut, aliran yang terdiri dari awalan terpanjang elemen yang diambil dari aliran ini cocok dengan predikat yang diberikan.
Contoh
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);
}
}
Keluaran
Metode takeWhile mengambil semua nilai a, b, dan c, lalu setelah string kosong, ia berhenti dijalankan.
abc
dropWhile (Antarmuka Predikat)
Sintaksis
default Stream<T> dropWhile(Predicate<? super T> predicate)
dropWhile metode membuang semua nilai di awal sampai predikat mengembalikan true. Ini mengembalikan, dalam kasus aliran terurut, aliran yang terdiri dari elemen yang tersisa dari aliran ini setelah menjatuhkan awalan terpanjang dari elemen yang cocok dengan predikat yang diberikan.
Contoh
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);
System.out.println();
Stream.of("a","b","c","","e","","f").dropWhile(s-> !s.isEmpty())
.forEach(System.out::print);
}
}
Keluaran
dropWhile metode menjatuhkan nilai a, b dan c, kemudian string kosong, itu mengambil semua nilai.
ef
ef
pengulangan
Sintaksis
static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)
metode iterate sekarang memiliki predikat hasNext sebagai parameter yang menghentikan loop setelah predikat hasNext mengembalikan false.
Contoh
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::println);
}
}
Keluaran
3
6
9
ofNullable
Sintaksis
static <T> Stream<T> ofNullable(T t)
Metode ofNullable diperkenalkan untuk mencegah NullPointerExceptions dan untuk menghindari pemeriksaan null untuk streaming. Metode ini mengembalikan Stream berurutan yang berisi elemen tunggal, jika bukan nol, jika tidak, mengembalikan Stream kosong.
Contoh
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);
}
}
Keluaran
1
0