logo

Arrow Operator Java nyelven

Ebben a cikkben bemutatjuk a Java nyíl operátorát (->), valamint néhány mintakódot, amelyek segítenek megérteni a koncepciót.

A lambda kifejezések létrehozására használt nyíl operátort a lambda kifejezés funkció hozzáadásával együtt vezették be a Java 8-ban. Ez elválasztja a kifejezés törzsét az argumentumoktól.

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

A Java kód érthetőbbé és tömörebbé tétele érdekében a Java 8 által bevezetett lambda kifejezés használható az anonim osztályokhoz.

Az alábbiakban bemutatjuk, hogyan lehet névtelen osztályt készíteni Java használatával a Java 8 előtt.

jdbc jdbc
 Runnable r1 = new Runnable() { @Override public void run() { System.out.print(' method Run '); } }; 

És itt van, hogyan hajthatjuk végre a fent említett feladatot a Java 8-ban, lambda kifejezést használva.

alfa-béta metszés
 Runnable r1 = ()-> System.out.print(' method Run '); 

A lambda és a nyíl operátorok jobb megértéséhez kezdjünk néhány példával.

Hogyan kell használni az Arrow Operatort Java-ban?

Ezen az ábrán a Drawable interfész draw() metódusát lambda-kifejezéssel és nyíl operátorral valósítottuk meg. Lásd az alábbi ábrát.

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(); } } 

Kimenet:

véletlen c
Arrow Operator Java nyelven

A lambda-kifejezést a Java programozásban többféleképpen is felhasználhatjuk, mivel ez egy nagyszerű technika a tömör kódok funkcionális megközelítéssel történő írására. Íme néhány példa, amikor használhatjuk.

Tömboperátor a Java gyűjteményben

Ezen az ábrán lambda-kifejezést használunk az adatok kiszűrésére egy ArrayList-ből. A kívánt eredmény eléréséhez a filter() metódust és a stream API-t használtuk. Láthatod, mennyivel egyszerűbb a lambda kód írása, mint a nem lambda kód. Lásd az alábbi ábrát.

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>

Kimenet:

mysql bal csatlakozás
 Tutorial and example: 100500.0 Website: 25000.0 

Tömboperátor a Java szálban

A futtatható felület run() metódusának megvalósítása érdekében ebben az esetben lambda kifejezést használtunk. A lambda-kifejezés könnyen használható, mivel a Runnable egyetlen metódusinterfésszel rendelkezik. lásd az alábbi ábrát.

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(); } } 

Kimenet:

 Thread is running...