logo

Arrow Operator în Java

Operatorul săgeată (->) în Java este explicat în acest articol împreună cu un exemplu de cod pentru a vă ajuta să înțelegeți conceptul.

Operatorul săgeată, care este folosit pentru a crea expresii lambda, a fost introdus împreună cu adăugarea funcționalității expresiei lambda în Java 8. El împarte corpul expresiei de argumente.

 (parameters) -> { statements; } // Lambda expression having arrow 

Pentru a face codul Java mai ușor de înțeles și mai concis, expresia lambda, care a fost introdusă de Java 8, poate fi folosită pentru clasele anonime.

Mai jos este prezentată o ilustrare a modului în care se construiește o clasă anonimă folosind Java înainte de Java 8.

număr aleator între 1 și 10
 Runnable r1 = new Runnable() { @Override public void run() { System.out.print(' method Run '); } }; 

Și iată cum putem îndeplini sarcina menționată mai sus în Java 8 utilizând o expresie lambda.

 Runnable r1 = ()-> System.out.print(' method Run '); 

Pentru a înțelege mai bine cum să folosiți operatorii lambda și săgeți, să începem cu câteva exemple.

matrice js

Cum se utilizează Arrow Operator în Java?

În această ilustrație, metoda draw() a interfeței Drawable a fost implementată folosind o expresie lambda și operatorul săgeată. Vezi ilustrația de mai jos.

M.java

 interface Drawable{ public void draw(); } public class M { public static void main(String[] args) { int w = 20; // arrow operator Drawable d=()->{ System.out.println(' Drawing width is '+w); }; d.draw(); } } 

Ieșire:

Arrow Operator în Java

Putem folosi expresia lambda în programarea Java într-o varietate de moduri, deoarece este o tehnică excelentă de a scrie cod succint folosind o abordare funcțională. Iată câteva cazuri în care îl putem folosi.

Array Operator în colecția Java

În această ilustrație, folosim o expresie lambda pentru a filtra datele dintr-o ArrayList. Pentru a obține rezultatul dorit, am folosit metoda filter() și API-ul stream. Puteți vedea cât de mult mai simplu este de scris codul lambda decât codul non-lambda. Vezi ilustrația de mai jos.

25 c la k

M1.java

 package javaexample; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; class P{ int id; String n; float pri; public P(int id, String n, float pri) { this.id = id; this.n = n; this.pri = pri; } } public class M1{ public static void main(String[] args) { List<p> l = new ArrayList</p><p>(); l.add(new P(1,&apos; JavaTpoint &apos;,17000)); l.add(new P(3,&apos; Tutorial and example &apos;,100500)); l.add(new P(2,&apos; Website &apos;,25000)); // using the arrow to filter data Stream</p><p> filtered_data = l.stream().filter(q -&gt; q.pri &gt; 17000); filtered_data.forEach( p -&gt; System.out.println(p.n+&apos;: &apos;+p.pri) ); } } </p>

Ieșire:

json în exemplu json
 Tutorial and example: 100500.0 Website: 25000.0 

Operator de matrice în firul Java

Pentru a implementa metoda run() a ambelor interfețe rulabile, am folosit expresia lambda în acest caz. O expresie lambda poate fi utilizată cu ușurință, deoarece Runnable are o singură interfață cu metoda. vezi ilustrația de mai jos.

M3.java

 package javaexample; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; public class M3{ public static void main(String[] args) { // using arrow operator Runnable r1=()-&gt;{ System.out.println(&apos; Thread is running... &apos;); }; Thread t1 = new Thread(r1); t1.start(); } } 

Ieșire:

 Thread is running...