logo

Arrow Operator i Java

Piloperatorn (->) i Java förklaras i den här artikeln tillsammans med lite exempelkod som hjälper dig att förstå konceptet.

Piloperatorn, som används för att skapa lambda-uttryck, introducerades tillsammans med tillägget av lambda-uttrycksfunktionaliteten i Java 8. Den delar uttryckskroppen från argumenten.

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

För att göra Java-koden mer begriplig och koncis kan lambda-uttryck, som introducerades av Java 8, användas på plats för anonyma klasser.

En illustration av hur man bygger en anonym klass med Java före Java 8 visas nedan.

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

Och här är hur vi kan utföra ovannämnda uppgift i Java 8 med hjälp av ett lambda-uttryck.

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

För att bättre förstå hur man använder lambda- och piloperatorerna, låt oss börja med några exempel.

Hur använder man Arrow Operator i Java?

I den här illustrationen implementerades draw()-metoden för både Drawable-gränssnittet med ett lambda-uttryck och piloperatorn. Se illustrationen nedan.

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

Produktion:

romerska siffror diagram 1 100
Arrow Operator i Java

Vi kan använda lambda-uttryck i Java-programmering på en mängd olika sätt eftersom det är en utmärkt teknik att skriva kortfattad kod med ett funktionellt tillvägagångssätt. Här är flera exempel där vi kan använda det.

Array Operator i Java-samling

I den här illustrationen använder vi ett lambda-uttryck för att filtrera data från en ArrayList. För att uppnå det önskade resultatet använde vi filter()-metoden och stream-API:et. Du kan se hur mycket enklare lambdakod är att skriva än icke-lambdakod. Se illustrationen nedan.

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>

Produktion:

java polymorfism
 Tutorial and example: 100500.0 Website: 25000.0 

Array-operator i Java-tråd

För att implementera run()-metoden för både det körbara gränssnittet använde vi lambda-uttryck i det här fallet. Ett lambda-uttryck kan användas med lätthet eftersom Runnable har ett enda metodgränssnitt. se illustrationen nedan.

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

Produktion:

 Thread is running...