Как объединить List и метод в один метод в Java?

В Java можно объединить List и метод в один метод, используя прием, известный как функциональное программирование. Функциональное программирование - это парадигма программирования, в которой функции рассматриваются как объекты первого класса и могут использоваться в качестве аргументов других функций и возвращаться как результаты выполнения функций.

Для объединения List и метода первым шагом является определение интерфейса, который будет представлять функциональный метод. В Java это можно сделать с помощью функционального интерфейса, который содержит только один абстрактный метод. Например:

@FunctionalInterface
interface ListOperation<T> {
    void perform(List<T> list);
}

В данном случае интерфейс ListOperation определяет абстрактный метод perform, который принимает в качестве аргумента List.

Затем можно создать метод, который принимает List и объект типа ListOperation в качестве аргументов и выполняет операцию над List. Например:

public static <T> void applyOperation(List<T> list, ListOperation<T> operation) {
    operation.perform(list);
}

Теперь мы можем передавать различные реализации ListOperation в метод applyOperation для выполнения операций над List.

Вот пример того, как можно использовать все это в коде:

public static void main(String[] args) {
    List<String> names = new ArrayList<>();
    names.add("John");
    names.add("Alice");
    names.add("Bob");
    
    // Создаем объект ListOperation для удаления элемента из List
    ListOperation<String> removeOperation = list -> list.remove("Alice");
    
    // Применяем операцию к List
    applyOperation(names, removeOperation);
    
    // Выводим результат
    System.out.println(names);
}

В результате выполнения кода вы увидите, что элемент "Alice" был удален из списка.

В итоге, объединение List и метода можно достичь с помощью функционального программирования в Java, используя функциональные интерфейсы и передачу методов как параметры. Это позволяет писать более гибкий и читаемый код, повышая модульность и переиспользуемость.