فرض کنید که از لیست کارکنان یک مجموعه می خواهید 10 نفر از مردها را انتخاب کنید که حقوق شان کمتر از 1000 و براساس حقوق مرتب کنید و هم زمان در خروجی نمایش بدید فکر کنید اگر استریم نبود باید چند خط کد می نوشتید..!!
public class SampleStream {
public static void main(String[] args) {
List<Employee> employeeList = new ArrayList<>();
employeeList.add(new Employee("farhad",800, true));
employeeList.add(new Employee("ali",1500000, true));
employeeList.add(new Employee("morteza",600, true));
employeeList.add(new Employee("hasan",700, true));
employeeList.add(new Employee("goli",1800000, true));
Predicate<Employee> predicate = (employee) -> (employee.gender && employee.salary < 1000);
Comparator<Employee> comparator = Comparator.comparingInt(a -> a.salary);
Consumer<Employee> consumer = (employee) -> System.out.printf("%s ,%d \n",employee.name ,employee.salary);
employeeList
.stream()
.parallel()
.filter(predicate)
.sorted(comparator)
.limit(10)
.forEach(consumer);
}
private static class Employee {
private String name ;
private int salary ;
private boolean gender ;
Employee(String name, int salary, boolean gender) {
this.name = name;
this.salary = salary;
this.gender = gender;
}
}
}