مزایای API جریان جاوا

جاوا API جریان معرفی شد جاوا 8 برای پردازش مجموعه داده ها به سبک برنامه نویسی کاربردی. این راهی برای انجام عملیاتی مانند فیلتر ، نقشه برداری ، کاهش و مرتب سازی بر روی مجموعه ها به طور کارآمد فراهم می کند.
مزایای API جریان جاوا
-
کد مختصر و قابل خواندن
- با جایگزینی سنتی ، کد دیگ بخار را کاهش می دهد
for
وتwhile
حلقه هایی با عملیات اعلامی مانندfilter()
باmap()
وتforEach()
بشر - مثال:
List<String> names = List.of("Alice", "Bob", "Charlie"); names.stream() .filter(name -> name.startsWith("A")) .forEach(System.out::println); // Alice
- با جایگزینی سنتی ، کد دیگ بخار را کاهش می دهد
-
عملکرد بهبود یافته با ارزیابی تنبل
- جریان استفاده می کند ارزیابی تنبل، به معنای عملیات فقط در صورت لزوم اجرا می شود و عملکرد را بهینه می کند.
- عملیات میانی (
filter()
باmap()
) هستند بلافاصله اعدام نشده است؛ آنها صبر می کنند تا عمل پایانه (collect()
باforEach()
باcount()
) نامیده می شود.
-
پردازش موازی (عملکرد بهتر در CPU های چند هسته ای)
- پشتیبانی جریان اعدام موازی با
parallelStream()
، فعال کردن عملکرد بهتر در پردازنده های چند هسته ای. - مثال:
List<Integer> numbers = List.of(1, 2, 3, 4, 5); int sum = numbers.parallelStream().mapToInt(n -> n * 2).sum(); System.out.println(sum); // 30
- پشتیبانی جریان اعدام موازی با
-
سبک برنامه نویسی عملکردی و اعلامی
- تشویق کردن برنامه نویسی عملکردی با اجازه استفاده از عبارات لامبدا وت منابعبشر
- نیازی به تکرار خارجی با استفاده از حلقه ها نیست.
-
عوارض جانبی و مسائل مربوط به جهش را کاهش می دهد
- جریان ها روی داده های تغییر ناپذیر کار می کنند و احتمال آن را کاهش می دهند عوارض جانبی غیر منتظره و ساخت کد از خود ایمن کردن در بسیاری موارد
-
راندمان بهتر حافظه
- جریان عناصر فرآیند در صورت تقاضا، اجتناب استفاده از حافظه غیر ضروری (در مقایسه با ایجاد مجموعه های جدید برای نتایج متوسط).
-
طیف گسترده ای از عملیات داخلی
- از عملیات مختلف مانند:
-
فیلتر کردن (
filter()
) -
تحول (
map()
) -
تجمع (
reduce()
باcount()
باsum()
) -
مرتب سازی (
sorted()
) -
جمع آوری نتایج (
collect()
)
-
فیلتر کردن (
- از عملیات مختلف مانند:
-
تحول آسان داده
- در
map()
عملکرد اجازه می دهد تا یک نوع داده را به راحتی تبدیل کنید. - مثال:
List<String> names = List.of("Alice", "Bob", "Charlie"); List<Integer> nameLengths = names.stream() .map(String::length) .toList(); System.out.println(nameLengths); // [5, 3, 7]
- در
-
پشتیبانی داخلی برای جمع آوری
- اجازه آسان می دهد شمارش ، جمع بندی و کاهش عملیات
- مثال:
int total = List.of(1, 2, 3, 4, 5).stream().reduce(0, Integer::sum); System.out.println(total); // 15
پایان
Java Stream API فراهم می کند مختصربا کارآمدوت موازی پذیر راه های کار با مجموعه ها ، ساخت کد در ضمن بهبود عملکرد در بسیاری از موارد. با این حال ، توسعه دهندگان باید استفاده کنند جریان های موازی با احتیاط برای جلوگیری از سربار غیر ضروری در مجموعه داده های کوچک.