برنامه نویسی

تسلط بر پردازش جریان جاوا: یک راهنمای جامع

پردازش Java Stream یک تغییر دهنده بازی برای توسعه دهندگان است و به آنها امکان می دهد داده ها را به روشی اعلامیه پردازش کنند. این ویژگی روشی مختصر و خواندنی برای انجام عملیات در جریان داده ها فراهم می کند و نوشتن کد کارآمد و مقیاس پذیر را آسان تر می کند. در این مقاله ، ما به دنیای پردازش جریان جاوا می پردازیم ، از مزایای آن کاوش می کنیم و یک راهنمای گام به گام در مورد نحوه استفاده مؤثر از آن ارائه می دهیم.

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

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

ایجاد جریانهای جاوا

روش های مختلفی برای ایجاد جریان جاوا وجود دارد:

  • با استفاده از Stream.of() روش: یک جریان از مجموعه ای از عناصر ایجاد کنید.
  • با استفاده از Stream.generate() روش: یک جریان از یک عملکرد ژنراتور ایجاد کنید.
  • با استفاده از Stream.iterate() روش: یک جریان از یک عملکرد تکراری ایجاد کنید.

عملیات میانی

از عملیات میانی برای تبدیل جریان مانند فیلتر ، نقشه برداری و مرتب سازی استفاده می شود. این عملیات جریان جدیدی را باز می گرداند و امکان پردازش بیشتر را فراهم می کند. برخی از عملیات میانی مشترک عبارتند از:

  • filter(): عناصری را که با یک محمول مطابقت ندارند فیلتر کنید.
  • map(): عناصر را به یک شکل جدید تبدیل کنید.
  • sorted(): عناصر موجود در جریان را مرتب کنید.
import java.util.stream.Stream;

public class StreamExample {
    public static void main(String[] args) {
        // Create a stream from a fixed set of elements
        Stream<String> stream = Stream.of("apple", "banana", "cherry");

        // Filter and map the stream
        stream.filter(s -> s.startsWith("a"))
              .map(String::toUpperCase)
              .forEach(System.out::println);
    }
}
حالت تمام صفحه را وارد کنید

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

عملیات پایانی

از عملیات ترمینال برای تولید یک نتیجه یا عوارض جانبی مانند جمع آوری عناصر در یک مجموعه یا چاپ آنها به کنسول استفاده می شود. برخی از عملیات ترمینال مشترک عبارتند از:

  • forEach(): یک عمل را روی هر عنصر در جریان انجام دهید.
  • collect(): عناصر را در یک مجموعه جمع کنید.
  • reduce(): عناصر موجود در جریان را به یک مقدار واحد کاهش دهید.
import java.util.stream.Stream;
import java.util.Arrays;
import java.util.List;
import java.util.Collectors;

public class StreamExample {
    public static void main(String[] args) {
        // Create a list of elements
        List<String> list = Arrays.asList("apple", "banana", "cherry");

        // Filter the list using a stream
        List<String> filteredList = list.stream()
                                        .filter(s -> s.startsWith("a"))
                                        .collect(Collectors.toList());

        // Print the filtered list
        System.out.println(filterList);
    }
}
حالت تمام صفحه را وارد کنید

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

مثال در دنیای واقعی: پردازش داده ها

فرض کنید لیستی از کارمندان دارید و می خواهید متوسط ​​حقوق کارمندان را در یک بخش خاص پیدا کنید. برای حل این مشکل می توانید از پردازش جریان جاوا استفاده کنید.

import java.util.stream.Stream;
import java.util.Arrays;
import java.util.List;

class Employee {
    private String name;
    private double salary;
    private String department;

    public Employee(String name, double salary, String department) {
        this.name = name;
        this.salary = salary;
        this.department = department;
    }

    public double getSalary() {
        return salary;
    }

    public String getDepartment() {
        return department;
    }
}

public class StreamExample {
    public static void main(String[] args) {
        // Create a list of employees
        List<Employee> employees = Arrays.asList(
            new Employee("John", 50000, "Sales"),
            new Employee("Jane", 60000, "Marketing"),
            new Employee("Bob", 70000, "Sales")
        );

        // Calculate the average salary of employees in the Sales department
        double averageSalary = employees.stream()
            .filter(e -> e.getDepartment().equals("Sales"))
            .mapToDouble(Employee::getSalary)
            .average()
            .orElse(0);

        // Print the average salary
        System.out.println("Average salary: " + averageSalary);
    }
}
حالت تمام صفحه را وارد کنید

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

پایان

در نتیجه ، پردازش جریان جاوا ابزاری قدرتمند برای پردازش داده ها به روش اعلامی است. این یک روش مختصر و خواندنی برای انجام عملیات در جریان داده ها فراهم می کند و نوشتن کد کارآمد و مقیاس پذیر را آسان تر می کند. با تمرین و تجربه ، می توانید در استفاده از پردازش جریان جاوا برای حل کارهای پیچیده پردازش داده ها مهارت داشته باشید.

فراخوانی به عمل

مثالهای موجود در این مقاله را امتحان کرده و با عملیات مختلف واسطه ای و ترمینال آزمایش کنید تا ببینید که چگونه می توان از آنها برای حل مشکلات دنیای واقعی استفاده کرد. نظرات خود را در نظرات زیر به اشتراک بگذارید ، و فراموش نکنید که برای آموزش های بیشتر و مقالات در مورد جاوا و توسعه نرم افزار مشترک شوید. برنامه نویسی مبارک!

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

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

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

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