Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpLmPrm 14 of 322 menu
◀ ▶

Практика на лямбды в Java

Сервис статей хранит заголовки в массиве и умеет обрабатывать их перед выводом. Сначала объявим хранилище:

class ArticleTitles { private final String[] items = { "api", "java", "draft post", "go" }; String[] items() { return items; } }

Метод отбора по предикату возвращает новый массив подходящих строк:

import java.util.function.Predicate; class ArticleTitles { String[] filter(Predicate<String> rule) { int kept = 0; for (String item : items) { if (rule.test(item)) { kept++; } } String[] out = new String[kept]; int index = 0; for (String item : items) { if (rule.test(item)) { out[index++] = item; } } return out; } }

Метод печати принимает потребитель и вызывает его для каждого заголовка:

import java.util.function.Consumer; class ArticleTitles { void printEach(Consumer<String> action) { for (String item : items) { action.accept(item); } } }

В main свяжем правила и действия:

import java.util.function.Predicate; import java.util.function.Consumer; public class Main { public static void main(String[] args) { ArticleTitles store = new ArticleTitles(); Predicate<String> longEnough = t -> t.length() >= 4; String[] picked = store.filter(longEnough); System.out.println(picked.length); store.printEach(title -> System.out.println("> " + title) ); } }

Добавьте предикат startsWithJ и выведите число элементов после filter.

Сделайте метод mapFirst, который возвращает копию массива с преобразованным первым элементом. Проверьте на массиве из одной строки "api" с преобразованием строки в верхний регистр.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить