Sobes.tech
Junior

Kas yra lambda išraiškos Java?

sobes.tech AI

Atsakymas iš AI

Lambdų išraiška — tai trumpa forma anoniminės funkcijos, kuri įgyvendina funkcinio interfeiso metodus.

Struktūra: (parametrai) -> { išraiškos kūnas }.

Dalis Aprašymas Pavyzdžiai
parametrai Parametrų sąrašas, gali būti tuščias. Tipai gali būti nenurodyti (išvedami). ()<br>x<br>(x, y)<br>(int x, String y)
-> Strėlės operatorius (arrow operator). Skiria parametrus nuo kūno. ->
išraiškos kūnas Lambdo kūnas. Gali būti išraiška arba kodo blokas. x * x<br>{ System.out.println(x); }

Naudojimo pavyzdžiai:

  • Funkcinių interfeisų įgyvendinimas:

    import java.util.function.Consumer;
    
    // Iki tradicinės anoniminių klasių įgyvendinimo
    Consumer<String> consumerAnon = new Consumer<String>() {
        @Override
        public void accept(String s) {
            System.out.println(s);
        }
    };
    consumerAnon.accept("Tradicinė anoniminių klasių realizacija");
    
    // Naudojant lambda išraišką
    Consumer<String> consumerLambda = s -> System.out.println(s);
    consumerLambda.accept("Lambda išraiška");
    
  • Darbas su 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);
    
    // Porinių skaičių filtravimas su lambda
    List<Integer> evenNumbers = numbers.stream()
                                      .filter(n -> n % 2 == 0)
                                      .collect(Collectors.toList());
    
    System.out.println(evenNumbers); // Išvestis: [2, 4]
    
    // Skaičių pavertimas jų kvadratais
    List<Integer> squares = numbers.stream()
                                  .map(n -> n * n)
                                  .collect(Collectors.toList());
    
    System.out.println(squares); // Išvestis: [1, 4, 9, 16, 25]
    

Privalumai:

  • Sutrumpina kodą lyginant su anoniminių klasių naudojimu.
  • Pagerina skaitomumą paprastoms operacijoms.
  • Patogu naudoti su Streams API ir kitais API, orientuotais į funkcionalų programavimą.