Advertisement
sergAccount

Untitled

Feb 13th, 2021
702
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.10 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package com.mycompany.app9_dz;
  7.  
  8. import java.util.Arrays;
  9. import java.util.List;
  10. import java.util.stream.Collectors;
  11.  
  12. /**
  13.  *
  14.  * @author Admin
  15.  */
  16. public class Main {
  17.     /*
  18.     Задача 2
  19.     Использовать стрим. объектов типа Stream<Person> для решения задачи (!)
  20.     Создать метод (!) который в качестве параметра принимает массив объектов типа Person и устанавливает возраст
  21.     для первых n персон из массива - параметры метода
  22.     public static void setAge(Person[] arr, int age, int n)
  23.  
  24.     Изменить возраст первых n персон данного массива на значение age, только в том случае,
  25.     если имя и фамилия не равны null и текущий возраст человека не равен 0.
  26.     */
  27.    
  28.     public static void setAge(Person[] arr, int age, int n){
  29.         // пол
  30.         // limit - ограничиваем - берем первые n
  31.         // filter - указываем условие отбора
  32.         // forEach - выполняем изменения для элеента потока
  33.         Arrays.stream(arr).limit(n)
  34.                 .filter(s -> (s.getAge()>0 && s.getName()!=null && s.getLastName()!=null))
  35.                 .forEach(s -> s.setAge(age));            
  36.     }
  37.     /*
  38.     Задача 3
  39.     Использовать стрим. объектов типа Stream<Person> для решения задачи (!)
  40.     Создать метод (!) который в качестве параметра принимает массив объектов типа Person и возвращает
  41.     возраст персон в виде объекта типа List, начиная с элемента массива from - параметры метода, в том случае,
  42.     если значение возраста персоны >=0.
  43.     public static List<Integer> getAgeOfPersons(Person[] arr, int from)
  44.     */
  45.     public static List<Integer> getAgeOfPersons(Person[] arr, int from){
  46.         //
  47.         return Arrays.stream(arr).skip(from-1)
  48.                                  .filter(s -> s.getAge()>=0).map(s -> s.getAge())
  49.                                  .collect(Collectors.toList());
  50.     }            
  51.     //
  52.     public static void main(String[] args) {
  53.         Person[] arr = {new Person("Name", "lastName", 10), new Person("Name", "lastName", 10)};
  54.         setAge(arr, 40, 1);
  55.         for (Person p: arr) {
  56.             System.out.println("p.name=" + p.getName() + "_age=" + p.getAge());
  57.         }
  58.        
  59.         System.out.println("getAgeOfPersons:");
  60.         List<Integer> result = getAgeOfPersons(arr, 1);
  61.         for(Integer i: result){
  62.             System.out.println("i=" + i);
  63.         }
  64.     }
  65. }
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement