Piloperatoren (->) i Java er forklaret i denne artikel sammen med noget eksempelkode for at hjælpe dig med at forstå konceptet.
Piloperatoren, som bruges til at skabe lambda-udtryk, blev introduceret sammen med tilføjelsen af lambda-udtryksfunktionaliteten i Java 8. Den adskiller udtrykkets krop fra argumenterne.
(parameters) -> { statements; } // Lambda expression having arrow
For at gøre Java-kode mere forståelig og kortfattet, kan lambda-udtryk, som blev introduceret af Java 8, anvendes til anonyme klasser.
En illustration af, hvordan man bygger en anonym klasse ved hjælp af Java før Java 8, er vist nedenfor.
centrale java-interviewspørgsmål
Runnable r1 = new Runnable() { @Override public void run() { System.out.print(' method Run '); } };
Og her er, hvordan vi kan udføre den førnævnte opgave i Java 8 ved at bruge et lambda-udtryk.
kylie jenner age
Runnable r1 = ()-> System.out.print(' method Run ');
For bedre at forstå, hvordan man bruger lambda- og pileoperatorerne, lad os starte med nogle eksempler.
Hvordan bruger man Arrow Operator i Java?
I denne illustration blev draw()-metoden for både Drawable-grænsefladen implementeret ved hjælp af et lambda-udtryk og pileoperatoren. Se illustrationen nedenfor.
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:
sortere et array java
Vi kan bruge lambda-udtryk i Java-programmering på en række forskellige måder, fordi det er en fantastisk teknik til at skrive kortfattet kode ved hjælp af en funktionel tilgang. Her er flere tilfælde, hvor vi kan bruge det.
Array Operator i Java-samling
I denne illustration bruger vi et lambda-udtryk til at filtrere data fra en ArrayList. For at opnå det ønskede resultat brugte vi filter() metoden og stream API. Du kan se, hvor meget enklere lambdakode er at skrive end ikke-lambdakode. Se illustrationen nedenfor.
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,' JavaTpoint ',17000)); l.add(new P(3,' Tutorial and example ',100500)); l.add(new P(2,' Website ',25000)); // using the arrow to filter data Stream</p><p> filtered_data = l.stream().filter(q -> q.pri > 17000); filtered_data.forEach( p -> System.out.println(p.n+': '+p.pri) ); } } </p>
Produktion:
række af strenge c programmering
Tutorial and example: 100500.0 Website: 25000.0
Array-operator i Java-tråd
For at implementere run()-metoden for både den kørebare grænseflade, brugte vi lambda-udtryk i dette tilfælde. Et lambda-udtryk kan nemt bruges, fordi Runnable har en enkelt metodegrænseflade. se illustrationen nedenfor.
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=()->{ System.out.println(' Thread is running... '); }; Thread t1 = new Thread(r1); t1.start(); } }
Produktion:
Thread is running...