/
digit
/
java-core-StreamAPI
Обзор
Документация
Войти
/
digit
/
java-core-StreamAPI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Main.java
91 строка
3 KB
digit
Create: Calculator.java, Education.java, Main.java, OnTaskDoneListener.java, Person.java, README (task 1).md, README (task 2).md, Sex.java, Worker.java
09 авг 2026, 21:58
Верифицирован
09 авг 2026, 21:58
eb4f912
Код
Авторство
О чём код?
import java.util.*; public class Main { public static void main(String[] args) { // Calculator Calculator calc = Calculator.instance.get(); int a = calc.plus.apply(1, 2); int b = calc.minus.apply(1, 1); try { int c = calc.divide.apply(a, b); // division by zero calc.println.accept(c); } catch (ArithmeticException e) { System.out.println(e.getMessage()); } System.out.println(); // Worker OnTaskDoneListener listener = System.out::println; Worker worker = new Worker(listener); worker.start(); System.out.println(); // Working with numbers var numbers = new ArrayList<>(List.of(1, 2, 5, 16, -1, -2, 0, 32, 3, 5, 8, 23, 4)); // Without Stream API ArrayList<Integer> numbersWithoutStreamAPI = new ArrayList<>(numbers); for (Iterator<Integer> it = numbersWithoutStreamAPI.iterator(); it.hasNext(); ) { int num = it.next(); if (num <= 0 || num % 2 != 0) { it.remove(); } } numbersWithoutStreamAPI.sort(Integer::compareTo); for (Integer number : numbersWithoutStreamAPI) { System.out.println(number); } System.out.println(); // With Stream API ArrayList<Integer> numbersWithStreamAPI = new ArrayList<>(numbers); numbersWithStreamAPI.stream() .filter(x -> x > 0) .filter(x -> x % 2 == 0) .sorted(Comparator.naturalOrder()) .forEach(System.out::println); System.out.println(); // Population census 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 < 10_000_000; 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( persons.stream() .filter(p -> p.getAge() < 18) .count() ); System.out.println(); List<String> surnames = persons.stream() .filter(p -> p.getAge() >= 18 && p.getAge() < 27) .map(Person::getName) .toList(); for (int i = 0; i < Math.min(5, surnames.size()); i++) { System.out.println(surnames.get(i)); } System.out.println(); List<String> workingSurnames = persons.stream() .filter(p -> p.getEducation() == Education.HIGHER) .filter(p -> p.getAge() >= 18) .filter(p -> p.getSex() == Sex.WOMAN && p.getAge() <= 60 || p.getSex() == Sex.MAN && p.getAge() <= 65) .map(Person::getFamily) .sorted() .toList(); for (int i = 0; i < Math.min(5, workingSurnames.size()); i++) { System.out.println(workingSurnames.get(i)); } } }