[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-dlya-chego-nuzhen-funktsionalnyy-interfeys-biconsumer":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},348,"dlya-chego-nuzhen-funktsionalnyy-interfeys-biconsumer",10,"java-8","Java 8+","☕","Для чего нужен функциональный интерфейс BiConsumer?","`BiConsumer\u003CT, U>` — функциональный интерфейс, который принимает два аргумента типов `T` и `U`, выполняет над ними побочный эффект и ничего не возвращает. Основной метод — `accept(T t, U u)`.\n\nЭтот интерфейс часто используется совместно с `Map.forEach()`, где нужно обработать пару ключ-значение:\n\n```java\nMap\u003CString, Integer> map = Map.of(\"a\", 1, \"b\", 2);\nmap.forEach((key, value) -> System.out.println(key + \" = \" + value));\n```\n\n`BiConsumer` также является целевым типом для `default`-метода `andThen()`, что позволяет создавать цепочки из нескольких операций над парой аргументов.\n\n> **На собеседовании:** достаточно сказать, что это двухаргументный аналог `Consumer`, и привести пример с `Map.forEach()`.","","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]