logo

Pijloperator in Java

De pijloperator (->) in Java wordt in dit artikel uitgelegd, samen met enkele voorbeeldcode om u te helpen het concept te begrijpen.

De pijloperator, die wordt gebruikt om lambda-expressies te maken, werd geïntroduceerd samen met de toevoeging van de lambda-expressiefunctionaliteit in Java 8. Deze scheidt de hoofdtekst van de expressie van de argumenten.

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

Om Java-code begrijpelijker en beknopter te maken, kan de lambda-expressie, geïntroduceerd door Java 8, worden gebruikt voor anonieme klassen.

Hieronder ziet u een illustratie van hoe u een anonieme klasse kunt bouwen met Java vóór Java 8.

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

En hier ziet u hoe we de bovengenoemde taak in Java 8 kunnen uitvoeren met behulp van een lambda-expressie.

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

Laten we beginnen met enkele voorbeelden om beter te begrijpen hoe u de lambda- en pijloperatoren kunt gebruiken.

Hoe gebruik ik de Arrow Operator in Java?

In deze illustratie is de methode draw() van zowel de Drawable-interface geïmplementeerd met behulp van een lambda-expressie en de pijloperator. Zie de onderstaande illustratie.

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

Uitgang:

javascript voor lus
Pijloperator in Java

We kunnen lambda-expressie op verschillende manieren gebruiken in Java-programmering, omdat het een geweldige techniek is om beknopte code te schrijven met behulp van een functionele benadering. Hier zijn verschillende voorbeelden waarin we het kunnen gebruiken.

Array-operator in Java-collectie

In deze illustratie gebruiken we een lambda-expressie om gegevens uit een ArrayList te filteren. Om het gewenste resultaat te bereiken, hebben we de filter()-methode en de stream-API gebruikt. U kunt zien hoeveel eenvoudiger lambda-code is om te schrijven dan niet-lambda-code. Zie de onderstaande illustratie.

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>

Uitgang:

hoe java af te drukken
 Tutorial and example: 100500.0 Website: 25000.0 

Array-operator in Java-thread

Om de run() -methode van zowel de uitvoerbare interface te implementeren, hebben we in dit geval de lambda-expressie gebruikt. Een lambda-expressie kan gemakkelijk worden gebruikt omdat Runnable één methode-interface heeft. zie onderstaande illustratie.

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

Uitgang:

 Thread is running...