برنامه نویسی

8.6 دانستن روشهای جریان بیشتر

آشنایی با روشهای جریان

  • در این فصل روشهای اضافی جریان API Java 8 ارائه شده است.
  • همه روشها پوشانده نشده اند ، اما جالب ترین آنها برجسته است.
  • در استفاده از جریان ، روشهای خوبی مورد بحث قرار گرفته است.

1. کار با تکرارها

  • خطا هنگام استفاده از Enhanced for Stream:
  • جریان باعث ایجاد خطای تلفیقی قابل تکرار نمی شود.
  • دلیل: جریان ها پس از عملیات ترمینال قابل استفاده مجدد نیستند (به عنوان مثال فراخوانی دوم راه اندازی غیرقانونی است).

  • استفاده از تکرار:
    به دست آوردن از طریق iteter ():

Iterator i = usuarios.stream().iterator();
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • روش foreachremaining: به شما امکان می دهد عناصر مسافرتی را با مصرف کننده سفر کنید (به عنوان مثال System.out :: println).

چه موقع از تکرار استفاده کنیم؟

  • اشیاء را در جریانهای موازی اصلاح کنید (از عوارض جانبی خودداری کنید).
  • سازگاری با API هایی که به تکرار نیاز دارند.

2. آزمایشات آزمایشی

روشهای تأیید مشروط:

  • Anymatch (محمول): بررسی کنید که آیا حداقل یک عنصر با محمول (به عنوان مثال userios.stream (). anymatch (کاربر :: isModerator)))).
  • AllMatch (محمول): بررسی می کند که آیا همه عناصر به محمول خدمت می کنند.
  • nonematch (محمول): اگر هیچ عنصری با محمول مطابقت نداشته باشد ، بررسی می کند.
  • کارآیی: پردازش قطع شده به محض رفع شرایط (به عنوان مثال برای یافتن مجری اول).

3. سایر روشهای مفید

عملیات اساسی:

  • COUNT (): مقدار عناصر موجود در جریان را برمی گرداند.
  • پرش (N): عناصر N اول را نادیده می گیرد.
  • محدود (n) **: عناصر جریان را محدود می کند.

ایجاد جریان:

  • stream.empty (): یک جریان خالی ایجاد می کند.
  • جریان.
  • stream.concat (stream1 ، stream2): جریان های Concatena dois.

منابع خارجی:

  • files.lines (): جریان خط پرونده.
  • pattern.splitasstream (): جریان از طریق regex.
  • arrays.stream (آرایه): یک آرایه های partir de را پخش کنید.

4. مدیریت منابع

جریان e io:

  • جریان های منشأی از منابع خارجی (به عنوان مثال پرونده ها) اتوکلوز را پیاده سازی می کنند.
  • اجباری: از منابع آزمایش شده یا در نهایت برای بستن جریان استفاده کنید. مثال:


try (Stream lines = Files.lines(Paths.get("arquivo.txt"))) {
// processamento
}

توجه: جریان های مجموعه نیازی به بسته شدن صریح ندارند.

5. ملاحظات نهایی

  • API گسترده: رابط جریان روش هایی برای نیازهای مختلف دارد.
  • توصیه: برای کشف روشهای مفید در هر زمینه ، مستندات API را کشف کنید.
  • مراقبت از جریان موازی: برای اطمینان از نتایج قطعی ، از تغییرات حالت خودداری کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا