Функциональные интерфейсы Consumer<T>, DoubleConsumer, IntConsumer и LongConsumer используются для представления операций, которые принимают один входной аргумент и не возвращают результата. Они являются частью пакета java.util.function.
Consumer<T>: Принимает аргумент любого типа T.DoubleConsumer: Принимает аргумент типа double. Это примитивная специализация Consumer, что позволяет избежать автоупаковки и работает эффективнее.IntConsumer: Принимает аргумент типа int. Также примитивная специализация для эффективности.LongConsumer: Принимает аргумент типа long. Еще одна примитивная специализация.Основное применение этих интерфейсов — в Lambdas и ссылках на методы. Они часто используются в API стримов Java для выполнения побочных эффектов на элементах стрима, например, для вывода на консоль или модификации внешнего состояния.
Пример использования Consumer<T>:
java
Пример использования IntConsumer:
java
Примитивные специализации (DoubleConsumer, IntConsumer, LongConsumer) следует предпочитать их обобщенным аналогам Consumer<T> при работе с примитивными типами для улучшения производительности путем избегания операций боксинга/анбоксинга.