[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-dlya-chego-nuzhny-funktsionalnye-interfeysy-todoublefunction-tointfunction-i-tolongfunction":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},353,"dlya-chego-nuzhny-funktsionalnye-interfeysy-todoublefunction-tointfunction-i-tolongfunction",10,"java-8","Java 8+","☕","Для чего нужны функциональные интерфейсы ToDoubleFunction, ToIntFunction и ToLongFunction?","Эти интерфейсы принимают один аргумент обобщённого типа `T` и возвращают примитивный результат. Они являются специализациями `Function`, оптимизированными для возврата примитива.\n\n| Интерфейс | Вход | Выход |\n|-----------|------|-------|\n| `ToDoubleFunction\u003CT>` | `T` | `double` |\n| `ToIntFunction\u003CT>` | `T` | `int` |\n| `ToLongFunction\u003CT>` | `T` | `long` |\n\nПример: `ToIntFunction` используется в `Stream.mapToInt()`:\n\n```java\nList\u003CString> words = List.of(\"a\", \"bb\", \"ccc\");\nint[] lengths = words.stream()\n    .mapToInt(String::length) \u002F\u002F String::length — это ToIntFunction\u003CString>\n    .toArray(); \u002F\u002F [1, 2, 3]\n```\n\n> **На собеседовании:** покажите связь с Stream API — именно в `mapToInt`\u002F`mapToDouble`\u002F`mapToLong` эти интерфейсы используются чаще всего.","","junior",[15],"java8",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Для чего нужны функциональные интерфейсы ObjDoubleConsumer,  — Gymterview","Эти интерфейсы представляют операцию, принимающую два аргумента — объект типа `T` и примитив — и ничего не возвращающую. Они являются специализированными версия","Эти интерфейсы представляют операцию, принимающую два аргумента — объект типа `T` и примитив — и ничего не возвращающую.",[15,13],"Эти интерфейсы представляют операцию, принимающую два аргумента — объект типа `T` и примитив — и ничего не возвращающую. Они являются специализированными версиями `BiConsumer`, где второй аргумент — примитив, что позволяет избежать автобоксинга.",true]