[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-dlya-chego-nuzhen-funktsionalnyy-interfeys-bifunction":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},349,"dlya-chego-nuzhen-funktsionalnyy-interfeys-bifunction",10,"java-8","Java 8+","☕","Для чего нужен функциональный интерфейс BiFunction?","`BiFunction\u003CT, U, R>` — функциональный интерфейс, принимающий два аргумента типов `T` и `U` и возвращающий результат типа `R`. Основной метод — `apply(T t, U u)`.\n\nЭтот интерфейс используется, когда для вычисления результата требуется два входных значения. Пример — метод `Map.replaceAll()`, который принимает `BiFunction\u003CK, V, V>` для замены всех значений в карте:\n\n```java\nMap\u003CString, Integer> map = new HashMap\u003C>(Map.of(\"a\", 1, \"b\", 2));\nmap.replaceAll((key, value) -> value * 10);\n\u002F\u002F {a=10, b=20}\n```\n\n`BiFunction` содержит `default`-метод `andThen()` для цепочки с последующим `Function`. `BinaryOperator\u003CT>` является частным случаем `BiFunction\u003CT, T, T>`.\n\n> **На собеседовании:** упомяните связь с `BinaryOperator` — это покажет понимание иерархии функциональных интерфейсов.","","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]