Sobes.tech
Junior

Ի՞նչ է թույլ տալիս անել լամբդա արտահայտությունները Java-ում։

sobes.tech AI

Պատասխան AI-ից

Լամբդա արտահայտություններ (Lambda Expressions) Java- ում, որոնք հայտնվեցին Java 8-ով, թույլ են տալիս՝

  • Ինտերֆեյսների իրականացմանը մեկ աբստրակտ մեթոդով (ֆունկցիոնալ ինտերֆեյսներ): Սա հիմնական նպատակն է: Լամբդաները տրամադրում են կարճ սինտաքսիս ֆունկցիոնալ ինտերֆեյսների օրինակներ ստեղծելու համար:
// Մինչ Java 8
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello pre-Java 8!");
    }
};

// Java 8-ով
Runnable lambdaRunnable = () -> System.out.println("Hello Java 8!");
  • Ներկայացնել վարքագիծ (գործառույթներ) որպես մեթոդների արգումենտներ: Սա ընդլայնում է ֆունկցիոնալ ծրագրավորման հնարավորությունները Java- ում: Մեթոդները կարող են ընդունել լամբդա արտահայտություններ որպես պարամետրեր:
// Օրինակ Stream API- ի օգտագործում լամբդայի հետ
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.stream()
     .filter(name -> name.startsWith("A")) // Լամբդա որպես filter արգումենտ
     .forEach(System.out::println);       // Լամբդա (մեթոդի հղում) որպես forEach արգումենտ
  • Օգտագործել Stream API: Լամբդա արտահայտությունները հիմքն են նոր Stream API- ի համար, որը թույլ է տալիս արդյունավետ մշակել տվյալների հավաքածուներ:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sumOfEven = numbers.stream()
                      .filter(n -> n % 2 == 0)
                      .mapToInt(Integer::intValue)
                      .sum();
  • Հեշտացնել անանուն ներքին դասերի իրականացումը ֆունկցիոնալ ինտերֆեյսների համար: Լամբդաները փոխարինում են երկարատև սինտաքսիս անանուն դասերի այս կոնտեքստում:

  • Բարձրացնել կոդի ընթեռնելիությունը: Պարզ գործողությունների համար լամբդաները դարձնում են կոդը ավելի կարճ և հասկանալի:

  • Թողնել հետաձգված կոդի կատարմանը: Լամբդա արտահայտությունը նկարագրում է գործողություն, որը կիրականացվի հետագայում, երբ այն կանչվի:

Լամբդաները նաև ունեն հասանելիություն արտաքին տեսանելիության տեղական փոփոխականներին (եթե դրանք effectively final են):

Ընդհանուր առմամբ, լամբդա արտահայտությունները դարձնում են Java- ն ավելի արտահայտիչ և հարմար ֆունկցիոնալ ծրագրավորման ոճի համար։