/
ProjectEroxa
/
JavaCore_HW_StreamAPI
Обзор
Документация
Войти
/
ProjectEroxa
/
JavaCore_HW_StreamAPI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Main.java
90 строк
4 KB
Евгений Ерошкин
upload files
23 июл 2025, 16:12
23 июл 2025, 16:12
74db695
Код
Авторство
О чём код?
import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { System.out.println("_______________________________"); System.out.println("Задача 3: Работа с числами (Collections)."); List<Integer> intList = Arrays.asList(1, 2, 5, 16, -1, -2, 0, 32, 3, 5, 8, 23, 4); List<Integer> mutableList = new ArrayList<>(); for (int i = 0; i < intList.size(); i++) { if (intList.get(i) > 0 && (intList.get(i) % 2) == 0) { mutableList.add(intList.get(i)); } } mutableList.sort(Comparator.naturalOrder()); System.out.println(mutableList); System.out.println("_______________________________"); System.out.println("Задача 4: Перепись населения."); List<String> names = Arrays.asList("Jack", "Connor", "Harry", "George", "Samuel", "John"); List<String> families = Arrays.asList("Evans", "Young", "Harris", "Wilson", "Davies", "Adamson", "Brown"); Collection<Person> persons = new ArrayList<>(); for (int i = 0; i < 1000; i++) { persons.add(new Person( names.get(new Random().nextInt(names.size())), families.get(new Random().nextInt(families.size())), new Random().nextInt(100), Sex.values()[new Random().nextInt(Sex.values().length)], Education.values()[new Random().nextInt(Education.values().length)]) ); } System.out.println("Несовершеннолетние (количество):"); //Количество несовершеннолетних (т.е. людей младше 18 лет). long count = persons.stream() .filter(person -> person.getAge() < 18) .count(); System.out.println(count); System.out.println("_______________________________"); System.out.println("Призывники:"); System.out.println(); //Список фамилий призывников (т.е. мужчин от 18 и до 27 лет). List<String> listFamiliesRecruits = persons.stream() .filter(person -> person.getAge() > 18 && person.getAge() < 27 && person.getSex() == Sex.MAN) .map(Person::getFamily) .collect(Collectors.toList()); System.out.println(listFamiliesRecruits); System.out.println("_______________________________"); System.out.println("Трудоспособное население:"); System.out.println(); //Отсортированный по фамилии список потенциально работоспособных людей с высшим образованием в выборке // (т.е. людей с высшим образованием от 18 до 60 лет для женщин и до 65 лет для мужчин). List<String> listWorkableHumans = persons.stream() .filter(person -> (person.getSex() == Sex.WOMAN && person.getAge() > 18 && person.getAge() < 60 && person.getEducation() == Education.HIGHER) || (person.getSex() == Sex.MAN && person.getAge() > 18 && person.getAge() < 65 && person.getEducation() == Education.HIGHER) ) .map(Person::getFamily) .sorted(Comparator.comparing(String::length)) .collect(Collectors.toList()); System.out.println(listWorkableHumans); System.out.println("_______________________________"); System.out.println("Дальше самодеятельность..."); System.out.println(); //тестирую вывод с перопределенным toString List<Person> testToString = persons.stream() .filter(person -> person.getAge() < 3) .collect(Collectors.toList()); testToString.forEach(System.out::println); } }