Sobes.tech
Junior

Ифодаҳои lambda дар 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("Ифодаи лямбда");
    
  • Кор бо API-и Streams:

    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]
    

Фарзандҳо:

  • кӯтоҳ кардани коди нисбат ба классҳои анонимӣ.
  • баланд бардоштани хонданӣ барои амалиёти содда.
  • қулай истифода бурдан бо API-и Streams ва API-и дигар, ки ба барномасозии функсионалӣ нигаронида шудаанд.