Sobes.tech
Middle
100
questionbank

Для чего используются функциональные интерфейсы Function<T, R>, DoubleFunction<R>, IntFunction<R> и LongFunction<R> в Java?

Ответ от нейросети

sobes.tech AI

Эти интерфейсы используются для представления операций, которые принимают один аргумент и возвращают результат.

  • Function<T, R>: Представляет функцию, которая принимает аргументы типа T и возвращает результат типа R.

    // Пример использования Function<String, Integer>
    Function<String, Integer> stringLength = s -> s.length();
    int length = stringLength.apply("Hello"); // Результат: 5
    
  • DoubleFunction<R>: Представляет функцию, которая принимает аргумент типа double и возвращает результат типа R.

    // Пример использования DoubleFunction<String>
    DoubleFunction<String> numberToString = d -> "Число: " + d;
    String text = numberToString.apply(3.14); // Результат: "Число: 3.14"
    
  • IntFunction<R>: Представляет функцию, которая принимает аргумент типа int и возвращает результат типа R.

    // Пример использования IntFunction<List<Integer>>
    IntFunction<List<Integer>> createList = size -> {
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < size; i++) {
            list.add(i);
        }
        return list;
    };
    List<Integer> numbers = createList.apply(5); // Результат: [0, 1, 2, 3, 4]
    
  • LongFunction<R>: Представляет функцию, которая принимает аргумент типа long и возвращает результат типа R.

    // Пример использования LongFunction<Date>
    LongFunction<Date> timestampToDate = timestamp -> new Date(timestamp);
    Date date = timestampToDate.apply(System.currentTimeMillis()); // Результат: текущая дата
    

Эти специализированные интерфейсы (DoubleFunction, IntFunction, LongFunction) используются для избежания автоупаковки (autoboxing) при работе с примитивными типами, что может улучшить производительность.