Sobes.tech
Junior

რა არის ლამბდა გამოთქმები Java-ში?

sobes.tech AI

პასუხი AI-სგან

Լամբդա արտահայտությունը — դա կարճ ձև է անոնիմ ֆունկցիայի, որը իրականացնում է ֆունկցիոնալ ինտերֆեյսի մեթոդները։

Կառուցվածք: (պարամետրեր) -> { արտահայտության մարմին }։

Հատված Նկարագրություն Օրինակներ
պարամետրեր Պարամետրերի ցանկ, կարող է լինել դատարկ։ Տիպերը կարող են չնշվել (արտադրվում են)։ ()<br>x<br>(x, y)<br>(int x, String y)
-> Աղեղի օպերատոր (arrow operator): Պատկանում է պարամետրերին և մարմնին։ ->
արտահայտության մարմին Արտահայտության կամ կոդի բլոկ։ x * x<br>{ System.out.println(x); }

Օգտագործման օրինակներ:

  • Ֆունկցիոնալ ինտերֆեյսների իրականացում:

    import java.util.function.Consumer;
    
    // Դեռ ավանդական անանուն դասի իրականացումից առաջ
    Consumer<String> consumerAnon = new Consumer<String>() {
        @Override
        public void accept(String s) {
            System.out.println(s);
        }
    };
    consumerAnon.accept("Անանուն դասական դաս");
    
    // Լամբդա արտահայտության օգտագործմամբ
    Consumer<String> consumerLambda = s -> System.out.println(s);
    consumerLambda.accept("Լամբդա արտահայտություն");
    
  • աշխատել Streams API-ով:

    import java.util.Arrays;
    import java.util.List;
    import java.util.stream.Collectors;
    
    List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
    
    // Ֆիլտրում զույգ թվեր լամբդայով
    List<Integer> evenNumbers = numbers.stream()
                                      .filter(n -> n % 2 == 0)
                                      .collect(Collectors.toList());
    
    System.out.println(evenNumbers); // Արտածում: [2, 4]
    
    // Թվերի վերափոխում քառակուսիներ
    List<Integer> squares = numbers.stream()
                                  .map(n -> n * n)
                                  .collect(Collectors.toList());
    
    System.out.println(squares); // Արտածում: [1, 4, 9, 16, 25]
    

Առավելություններ:

  • Կրճատում է կոդը անանուն դասերի համեմատ
  • Բարձրացնում է ընթերցելիությունը պարզ գործողությունների համար
  • Հարմար է օգտագործել Streams API-ով և այլ API-ներով, որոնք ուղղված են ֆունկցիոնալ ծրագրավորմանը։