[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-dlya-chego-nuzhny-funktsionalnye-interfeysy-unaryoperator-doubleunaryoperator-intunaryoperator-i-longunaryoperator":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},343,"dlya-chego-nuzhny-funktsionalnye-interfeysy-unaryoperator-doubleunaryoperator-intunaryoperator-i-longunaryoperator",10,"java-8","Java 8+","☕","Для чего нужны функциональные интерфейсы UnaryOperator, DoubleUnaryOperator, IntUnaryOperator и LongUnaryOperator?","`UnaryOperator\u003CT>` — специализация `Function\u003CT, T>`, у которой тип аргумента и тип результата совпадают. Используется, когда нужно преобразовать значение, сохранив его тип: например, увеличить число, привести строку к верхнему регистру или нормализовать объект.\n\n```java\nUnaryOperator\u003CInteger> square = x -> x * x;\nSystem.out.println(square.apply(5)); \u002F\u002F 25\n```\n\nПримитивные специализации:\n\n| Интерфейс | Работает с типом |\n|-----------|-----------------|\n| `UnaryOperator\u003CT>` | `T -> T` |\n| `DoubleUnaryOperator` | `double -> double` |\n| `IntUnaryOperator` | `int -> int` |\n| `LongUnaryOperator` | `long -> long` |\n\n`UnaryOperator` часто встречается в методе `List.replaceAll()`, который применяет оператор к каждому элементу списка на месте (in-place).\n\n> **На собеседовании:** достаточно сказать, что `UnaryOperator\u003CT>` — это `Function\u003CT, T>`, и привести пример. Примитивные версии существуют для устранения 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]