Der Pfeiloperator (->) in Java wird in diesem Artikel zusammen mit einigen Beispielcodes erklärt, die Ihnen helfen, das Konzept zu verstehen.
Der Pfeiloperator, der zum Erstellen von Lambda-Ausdrücken verwendet wird, wurde zusammen mit der Hinzufügung der Lambda-Ausdrucksfunktionalität in Java 8 eingeführt. Er trennt den Ausdruckskörper von den Argumenten.
(parameters) -> { statements; } // Lambda expression having arrow
Um Java-Code verständlicher und prägnanter zu machen, kann der mit Java 8 eingeführte Lambda-Ausdruck stattdessen für anonyme Klassen verwendet werden.
Nachfolgend wird veranschaulicht, wie eine anonyme Klasse mit Java vor Java 8 erstellt wird.
Bharti Jha
Runnable r1 = new Runnable() { @Override public void run() { System.out.print(' method Run '); } };
Und so können wir die oben genannte Aufgabe in Java 8 mithilfe eines Lambda-Ausdrucks ausführen.
Runnable r1 = ()-> System.out.print(' method Run ');
Um die Verwendung der Lambda- und Pfeiloperatoren besser zu verstehen, beginnen wir mit einigen Beispielen.
Wie verwende ich den Pfeiloperator in Java?
In dieser Abbildung wurde die Methode draw() der Drawable-Schnittstelle mithilfe eines Lambda-Ausdrucks und des Pfeiloperators implementiert. Siehe Abbildung unten.
M.java
Array-String in c
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(); } }
Ausgabe:
Wir können den Lambda-Ausdruck in der Java-Programmierung auf vielfältige Weise nutzen, da es sich um eine großartige Technik handelt, um prägnanten Code mit einem funktionalen Ansatz zu schreiben. Hier sind mehrere Fälle, in denen wir es verwenden können.
Array-Operator in der Java-Sammlung
In dieser Abbildung verwenden wir einen Lambda-Ausdruck, um Daten aus einer ArrayList zu filtern. Um das gewünschte Ergebnis zu erzielen, haben wir die Methode filter() und die Stream-API verwendet. Sie können sehen, wie viel einfacher Lambda-Code zu schreiben ist als Nicht-Lambda-Code. Siehe Abbildung unten.
Quartal im Geschäft
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>
Ausgabe:
Javascript-Druck
Tutorial and example: 100500.0 Website: 25000.0
Array-Operator im Java-Thread
Um die run()-Methode beider ausführbaren Schnittstellen zu implementieren, haben wir in diesem Fall den Lambda-Ausdruck verwendet. Ein Lambda-Ausdruck kann problemlos verwendet werden, da Runnable über eine einzige Methodenschnittstelle verfügt. siehe Abbildung unten.
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(); } }
Ausgabe:
Thread is running...