[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-dlya-chego-nuzhny-funktsionalnye-interfeysy-vida-tofunction":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},351,"dlya-chego-nuzhny-funktsionalnye-interfeysy-vida-tofunction",10,"java-8","Java 8+","☕","Для чего нужны функциональные интерфейсы вида ToFunction?","Функциональные интерфейсы вида `_To_Function` предназначены для преобразования одного примитивного типа в другой без автобоксинга. Они позволяют эффективно конвертировать значения между примитивными типами `double`, `int` и `long`.\n\n| Интерфейс | Вход | Выход |\n|-----------|------|-------|\n| `DoubleToIntFunction` | `double` | `int` |\n| `DoubleToLongFunction` | `double` | `long` |\n| `IntToDoubleFunction` | `int` | `double` |\n| `IntToLongFunction` | `int` | `long` |\n| `LongToDoubleFunction` | `long` | `double` |\n| `LongToIntFunction` | `long` | `int` |\n\nЭти интерфейсы используются, например, в методе `mapToInt()` примитивного стрима `DoubleStream`, когда нужно перейти от `double` к `int` без создания объектов-обёрток.\n\n> **На собеседовании:** не нужно заучивать все шесть вариантов — достаточно объяснить принцип именования и назвать причину существования (избежание autoboxing).","","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]