English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
أضاف API المعدل في Java 9 بعض الطرق المريحة مما يجعل معالجة التدفقات أسهل ويجعل كتابة الاستعلامات المعقدة باستخدام ميزات الجمع
Java 9 أضاف عدة طرق جديدة إلى Stream: dropWhile،takeWhile،ofNullable،وأضاف طريقة إضافية محملة إلى iterate.
Syntax
default Stream<T> takeWhile(Predicate<? super T> predicate)
طريقة takeWhile() تستخدم التأكيد كمعامل، وتعيد الناتج إلى مجموعة التيرات المحددة حتى يعود التأكيد إلى false لأول مرة. إذا لم تتوافق القيمة الأولى مع شرط التأكيد، يتم إعادة الناتج إلى تيرات فارغة.
طريقة takeWhile() في التيرات المرتبة، تعيد الناتج إلى أكبر عدد ممكن من العناصر من البداية؛ في التيرات غير المرتبة، تعيد الناتج إلى مجموعة التيرات التي تتوافق مع 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); } }
في المثال السابق، تتوقف طريقة takeWhile عند إيجاد مسلسل فراغي، ويكون الناتج من الإدخال:
abc
Syntax
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
Syntax
static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)
الطريقة تسمح باستخدام قيمة البداية لإنشاء تيار مرتب (قد يكون لا نهائي) وتطبيق التحديث المحدد مسبقًا. يتوقف التكرار عند عودة 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); } }
Execution output result is:
3 6 9
Syntax
static <T> Stream<T> ofNullable(T t)
The ofNullable method can prevent NullPointerExceptions exceptions, and it can avoid null values by checking the stream.
If the specified element is not null, it retrieves an element and generates a single-element stream, and if the element is null, it returns an empty stream.
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); } }
Execution output result is:
1 0