[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-dlya-chego-nuzhen-funktsionalnyy-interfeys-bipredicate":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},350,"dlya-chego-nuzhen-funktsionalnyy-interfeys-bipredicate",10,"java-8","Java 8+","☕","Для чего нужен функциональный интерфейс BiPredicate?","`BiPredicate\u003CT, U>` — функциональный интерфейс, принимающий два аргумента типов `T` и `U` и возвращающий `boolean`. Основной метод — `test(T t, U u)`.\n\nИспользуется для проверки условий, зависящих от двух значений. Как и `Predicate`, поддерживает `default`-методы `and()`, `or()` и `negate()` для комбинирования:\n\n```java\nBiPredicate\u003CString, Integer> lengthCheck = (str, len) -> str.length() > len;\nlengthCheck.test(\"hello\", 3); \u002F\u002F true\nlengthCheck.negate().test(\"hello\", 3); \u002F\u002F false\n```\n\nЭтот интерфейс удобен при фильтрации данных, которые представлены парами, например, ключ-значение из `Map`.\n\n> **На собеседовании:** достаточно указать, что `BiPredicate` — двухаргументный аналог `Predicate`, и привести пример комбинирования.","","junior",[15],"java8",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Для чего нужен функциональный интерфейс BiConsumer? — Gymterview","`BiConsumer\u003CT, U>` — функциональный интерфейс, который принимает два аргумента типов `T` и `U`, выполняет над ними побочный эффект и ничего не возвращает. Основ","`BiConsumer\u003CT, U>` — функциональный интерфейс, который принимает два аргумента типов `T` и `U`, выполняет над ними побоч",[15,13],"`BiConsumer\u003CT, U>` — функциональный интерфейс, который принимает два аргумента типов `T` и `U`, выполняет над ними побочный эффект и ничего не возвращает. Основной метод — `accept(T t, U u)`.",true]