Sobes.tech
Junior

Лаҳзаҳои lambda дар Java чӣ имкон медиҳанд?

sobes.tech AI

Ҷавоб аз AI

Лямбда-экспрессиялар (Lambda Expressions) Java-да, Java 8-да кертилган, қуйидагиларни амалга оширишга имкон беради:

  • Бир абстракт методга эга интерфейсларни (функционал интерфейслар) амалга ошириш: Бу уларнинг асосий мақсади. Лямбда-экспрессиялар функцияли интерфейсларнинг нусхаларини яратиш учун қисқа синтаксисини таклиф қилади.
// Java 8-дан олдин
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("Java 8-дан олдин салом!");
    }
};

// Java 8 билан
Runnable lambdaRunnable = () -> System.out.println("Java 8 салом!");
  • Ҳаракатлар (функциялар)ни методларга аргумент сифатида ўтказиш: Бу Java-да фукнционал дастурлаш имкониятларини кенгайтириб, методлар лямбда-экспрессияларни параметр сифатида қабул қилишларига имкон беради.
// Lambda билан Stream APIдан фойдаланиш мисоли
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.stream()
     .filter(name -> name.startsWith("A")) // filter учун lambda
     .forEach(System.out::println);       // forEach учун Method Reference (Методга ишора) lambda
  • Stream APIдан фойдаланиш: Lambda-экспрессиялар янги 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();
  • Аноним ички синфларни амалга оширишни соддалаштириш: Lambda-лар бу контекстда аноним ички синфлар синтаксисини узун ва мураккаб қилиб қўяди.

  • Код ўқилишини яхшилаш: Оддий операциялар учун lambda-лар кодни қисқа ва тушунарли қилади.

  • Коднинг кечиктирилган бажарилишини таъминлаш: Lambda-экспрессия кейинчалик чақирилганда бажариладиган амални тасвирлайди.

Lambda-лар ташқи муҳитдан маҳаллий ўзгарувчиларга ҳам кириш имкониятига эга (агар улар эффектли финал бўлса).

Умуман олганда, lambda-экспрессиялар Java-ни янада ифодаий қилади ва фукнционал дастурлаш услубига мослаштиради.