Привет! Я Дмитрий и сегодня расскажу тебе о том, как с помощью лямбда выражений вычислить средний возраст студентов мужского пола и определить, кому из них грозит получение повестки в текущем году.Начнем с определения класса Students. Этот класс содержит коллекцию студентов и выглядит следующим образом⁚
java
public class Students {
Collection
new Student(″Дмитрий″, 17٫ Gender.MAN)٫
new Student(″Максим″, 17, Gender.MAN),
new Student(″Екатерина″, 17٫ Gender.WOMAN)٫
new Student(″Михаил″, 28, Gender.MAN)
);
}
Теперь нам нужно найти средний возраст студентов мужского пола. Для этого воспользуемся методом `stream` для преобразования коллекции в поток данных, а затем использовать методы `filter` и `mapToInt` для фильтрации и преобразования данных. В результате, используя метод `average`, мы получим средний возраст.java
int averageAge students.stream
.filter(student -> student.getGender Gender.MAN)
.mapToInt(Student⁚⁚getAge)
.average
.orElse(0);
Готово! Теперь переменная `averageAge` содержит средний возраст студентов мужского пола.Теперь перейдем к определению, кому из студентов грозит получение повестки в этом году. Для этого воспользуемся таким же подходом с использованием лямбда выражений и метода `filter`. Мы применим условие, что возраст студента должен быть в диапазоне от 18 до 27 лет.java
List
.filter(student -> student.getGender Gender.MAN nn student.getAge > 18 nn student;getAge < 27)
.collect(Collectors.toList);
Теперь переменная `conscriptionList` содержит список студентов, которым грозит получение повестки в этом году.
Вот и все! Теперь у нас есть средний возраст студентов мужского пола и список студентов, которым грозит получение повестки в этом году. Использование лямбда выражений и функциональных возможностей Java помогло нам написать компактный и эффективный код.
Я надеюсь, что эта информация была полезной для тебя. Если у тебя есть еще вопросы, не стесняйся задавать!