Ի՞նչ է թույլ տալիս անել լամբդա արտահայտությունները 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- ն ավելի արտահայտիչ և հարմար ֆունկցիոնալ ծրագրավորման ոճի համար։