Rumah > Java > javaTutorial > teks badan

Kaedah pengaturcaraan serentak menggunakan ungkapan Lambda

WBOY
Lepaskan: 2023-08-20 08:17:19
ke hadapan
1085 orang telah melayarinya

Kaedah pengaturcaraan serentak menggunakan ungkapan Lambda

Tambahan penting dalam Java SE 8 ialah ciri ekspresi lambda. Gunakan ungkapan untuk menyatakan antara muka kaedah dengan jelas dan padat. Perpustakaan koleksi sangat membantu. Koleksi boleh diulang, ditapis dan data diekstrak untuk tujuan yang berguna. Untuk melaksanakan antara muka berfungsi, ungkapan lambda digunakan secara meluas. Ia menjimatkan banyak kod. Ungkapan Lambda membolehkan kami menyediakan pelaksanaan tanpa mentakrifkan semula kaedah. Di sini sahaja kod pelaksanaan dibentuk dengan menulis kod. Pengkompil tidak mencipta fail .class kerana ungkapan lambda Java dianggap sebagai fungsi.

Antara muka berfungsi

@FunctionalInterface ialah anotasi Java yang mengisytiharkan antara muka sebagai antara muka berfungsi. Antara muka berfungsi ialah antara muka dengan hanya satu kaedah abstrak. Ungkapan Lambda membolehkan anda melaksanakan antara muka berfungsi ini.

Mengapa menggunakan ungkapan Lambda?

  • Ia menyediakan pelaksanaan antara muka berfungsi.

  • Ia menyediakan kurang pengekodan.

Sintaks Ungkapan Lambda Java

(argument-list)
{
   //body
}
Salin selepas log masuk

Ia terdiri daripada tiga komponen−

  • Argument-List − boleh kosong atau tidak kosong

  • Arrow-Taken − Digunakan untuk menyambung senarai parameter dan badan ungkapan

  • Badan − Ungkapan dan pernyataan yang mengandungi ungkapan lambda

Sintaks tanpa parameter

()
{
   // body of no parameter lambda
}
Salin selepas log masuk

Sintaks satu parameter

(p1)
{
   // body of single parameter lambda
}
Salin selepas log masuk

Dua sintaks parameter

(p1,p2)
{
   //body of multiple parameter lambda
}
Salin selepas log masuk

Contoh: Ekspresi Java Lambda

@FunctionalInterface  //It is optional  
interface Drawable{  
   public void draw();  
}  
  
public class LambdaExpressionExample2 {  
   public static void main(String[] args) {  
      int width=10;  
          
      //with lambda  
      Drawable d2=()->{  
         System.out.println("Drawing "+width);  
      };  
      d2.draw();  
   }  
}
Salin selepas log masuk

Output

Drawing 10
Salin selepas log masuk
Salin selepas log masuk

Contoh: tanpa menggunakan ungkapan Lambda

interface Drawable{  
   public void draw();  
}  
public class LambdaExpressionExample {  
   public static void main(String[] args) {  
      int width=10;  
  
      //without lambda, Drawable implementation using anonymous class  
      Drawable d=new Drawable(){  
         public void draw(){System.out.println("Drawing "+width);}  
      };  
      d.draw();  
   }  
}
Salin selepas log masuk

Output

Drawing 10
Salin selepas log masuk
Salin selepas log masuk

Contoh: tiada parameter

interface Sayable{  
   public String say();  
}  
public class LambdaExpressionExample3{  
   public static void main(String[] args) {  
      Sayable s=()->{  
         return "Don’t settle for average.";  
      };  
      System.out.println(s.say());  
   }  
}
Salin selepas log masuk

Output

Don’t settle for average
Salin selepas log masuk

Contoh: parameter tunggal

interface Sayable {  
   public String say(String name);  
}  
  
public class LambdaExpressionExample4{  
   public static void main(String[] args) {  
      
      // Lambda expression with single parameter.  
      Sayable s1=(name)->{  
         return "Hello, "+name;  
      };  
      System.out.println(s1.say("World"));  
          
      // You can omit function parentheses    
      Sayable s2= name ->{  
         return "Hello, "+name;  
      };  
      System.out.println(s2.say("World"));  
   }  
}
Salin selepas log masuk

Output

Hello, World
Hello, World
Salin selepas log masuk

Contoh: berbilang parameter

interface Addable{  
   int add(int a,int b);  
}  
  
public class LambdaExpressionExample5{  
   public static void main(String[] args) {  
          
      // Multiple parameters in lambda expression  
      Addable ad1=(a,b)->(a+b);  
      System.out.println(ad1.add(20,20));  
          
      // Multiple parameters with data type in lambda expression  
      Addable ad2=(int a,int b)->(a+b);  
      System.out.println(ad2.add(200,200));  
   }  
}
Salin selepas log masuk

Output

40
400
Salin selepas log masuk

Kesimpulan

Menggunakan ungkapan, Java SE 8 menyediakan tambahan berharga dengan ciri ekspresi lambda. Menyatakan antara muka kaedah dengan cara yang jelas dan ringkas telah menjadi satu kek. Mengulang, menapis dan mengekstrak data adalah antara banyak kegunaan praktikal yang disediakan oleh perpustakaan koleksi. Ungkapan Lambda telah digunakan secara meluas untuk melaksanakan antara muka berfungsi, dan ia boleh mengurangkan jumlah kod dengan banyak. Ciri terbaik ungkapan lambda ialah keupayaan untuk memberikan pelaksanaan tanpa mentakrifkan semula kaedah secara berlebihan. Dalam ruang ini, penulisan memberikan bentuk kod pelaksanaan. Pengkompil tidak mencipta fail .class kerana fungsi dianggap sebagai ungkapan lambda Java.

Atas ialah kandungan terperinci Kaedah pengaturcaraan serentak menggunakan ungkapan Lambda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan