Sobes.tech
Middle

Kas ir lambda izteiksmes Java un kādas iespējas tās nodrošina?

sobes.tech AI

Atbilde no AI

Java valodā lambda izteiksme ir anonīma funkcija, kas nepieder nevienam klasei un to var nodot kā objektu.

Sintakse: (parametri) -> { ķermenis }

Iespējas:

  1. Funkcionālais interfeiss: Lambda izteiksme var tikt piešķirta funkcionālam interfeisam (interfeisam ar vienu abstraktu metodi).
    // Funkcionālais interfeiss  
    @FunctionalInterface  
    interface MyInterface {  
        void myMethod();  
    }  
    
    // Izmantojot lambda izteiksmi  
    MyInterface lambda = () -> System.out.println("Hello from lambda!");  
    lambda.myMethod();  
    
  2. Koda vienkāršošana: Aizstāj anonīmas iekšējās klases, kas īsteno funkcionālos interfeisus.
    // Pirms Java 8 (anonīma klase)  
    Thread thread1 = new Thread(new Runnable() {  
        @Override  
        public void run() {  
            System.out.println("Old way");  
        }  
    });  
    
    // No Java 8 (lambda)  
    Thread thread2 = new Thread(() -> System.out.println("Lambda way"));  
    
  3. Izmantošana Stream API: Integrējas ar Stream API, lai veiktu operācijas pār kolekcijām.
    List<String> names = Arrays.asList("Alice", "Bob", "Charlie");  
    names.stream()  
         .filter(name -> name.startsWith("A")) // Lambda izteiksme  
         .forEach(System.out::println);        // Metodes atsauce  
    
  4. Aizkavēta izpilde: Kods lambda izteiksmē tiek izpildīts tikai izsaucot funkcionālo metodi.
  5. Redzamības jomas: Lambda izteiksmes var piekļūt ārējās jomas mainīgajiem (vietējie mainīgie jābūt final vai efektīvi final).
Priekšrocība Apraksts
Koda īsums Samazina "garlaicību" salīdzinājumā ar anonīmajām klasēm.
Lasāmības uzlabošana Kods kļūst kodolīgāks un skaidrāks.
Paralēla apstrāde Pārvaldīts ar Stream API paralēlām operācijām.