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

تعليمية Java الأساسية

تحكم في العملية في Java

الarrays في Java

البرمجة الموجهة للكائنات (I) في Java

البرمجة الموجهة للكائنات (II) في Java

البرمجة الموجهة للكائنات (III) في Java

معالجة الاستثناءات Java

قوائم List في Java

Queue (الطوابير) في Java

مجموعات Map في Java

مجموعات Set في Java

المدخلات والمداخلات في Java (I/O)

Reader/Writer في Java

مواضيع أخرى في Java

API المعدل في Java 9

Java 9 New Features

أضاف API المعدل في Java 9 بعض الطرق المريحة مما يجعل معالجة التدفقات أسهل ويجعل كتابة الاستعلامات المعقدة باستخدام ميزات الجمع

Java 9 أضاف عدة طرق جديدة إلى Stream: dropWhile،takeWhile،ofNullable،وأضاف طريقة إضافية محملة إلى iterate.

طريقة takeWhile

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

طريقة dropWhile

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

طريقة iterate

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

ofNullable method

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

Java 9 New Features