English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Учебник по основам Java

Java управление потоком

Java массив

Java объектно-ориентированное программирование (I)

Java объектно-ориентированное программирование (II)

Java объектно-ориентированное программирование (III)

Обработка исключений в Java

Java список (List)

Java Queue (очередь)

Java Map集合

Java Set集合

Java ввод-вывод (I/O)

Java Reader/Writer

Java другие темы

Java программа передает lambda-выражение в качестве параметра метода

Java полный список примеров

В этом примере мы изучим, как передавать lambda-выражение в качестве параметра метода в Java.

Чтобы понять этот пример, вы должны знать следующееПрограммирование на JavaТема:

Пример 1: Определить lambda-выражение в качестве параметра метода

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        //Создать ArrayList
        ArrayList<String> languages = new ArrayList<>();
        //Добавить элемент в ArrayList
        languages.add("java");
        languages.add("swift");
        languages.add("python");
        System.out.println("ArrayList: "+ languages);
        //Передать lambda-выражение в качестве параметра метода replaceAll()
        languages.replaceAll(e -> e.toUpperCase());
        System.out.println("Обновленный ArrayList: "+ languages);
    }
}

Результат вывода

ArrayList: [java, swift, python]
Обновленный ArrayList: [JAVA, SWIFT, PYTHON]

В предыдущем примере мы создали список languages. Обратите внимание на эту строку,

languages.replaceAll(e -> e.toUpperCase());

Здесь, e -> e.toUpperCase() это lambda-выражение. Оно принимает все элементы arraylist и преобразует их в верхний регистр.

Пример 2: Передать многострочный lambda-блок в качестве параметра функции

import java.util.ArrayList;
import java.util.Arrays;
class Main {
  public static void main(String[] args) {
    //Создать ArrayList
    ArrayList<String> languages = new ArrayList<>(Arrays.asList("java", "python"));
    System.out.println("ArrayList: "+ languages);
    //Вызов метода forEach()
    //Передать lambda в качестве параметра forEach()
    //Обратить элементы ArrayList
    System.out.print("Обратный ArrayList: ");
    languages.forEach((e) -> {
      //Тело lambda-выражения
      String result = "";
      for (int i = e.length() - 1; i >= 0; i--)
      result += e.charAt(i);
      System.out.print(result + ", ");
    });
  }
}

Результат вывода

ArrayList: [java, python]
Обратный ArrayList: avaj, nohtyp,

В上面的 примере мы создали ArrayList под названием languages. Обратите внимание на эту строку:

    languages.forEach((e) -> {
      //Тело lambda-выражения
      String result = "";
      for (int i = e.length() - 1; i >= 0; i--)
      result += e.charAt(i);
      System.out.print(result + ", ");
    });

В этом примере мы передаем lambda-выражение в качестве параметра вArrayList forEach()Метод. Lambda-выражение обратит каждый элемент ArrayList.

Java полный список примеров