logo

Operatore freccia in Java

L'operatore freccia (->) in Java è spiegato in questo articolo insieme ad alcuni codici di esempio per aiutarti a comprendere il concetto.

L'operatore freccia, utilizzato per creare espressioni lambda, è stato introdotto insieme alla funzionalità delle espressioni lambda in Java 8. Divide il corpo dell'espressione dagli argomenti.

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

Per rendere il codice Java più comprensibile e conciso, l'espressione lambda, introdotta da Java 8, può essere utilizzata per le classi anonime.

Di seguito è mostrata un'illustrazione di come creare una classe anonima utilizzando Java precedente a Java 8.

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

Ed ecco come possiamo svolgere il compito sopra menzionato in Java 8 utilizzando un'espressione lambda.

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

Per comprendere meglio come utilizzare gli operatori lambda e freccia, cominciamo con alcuni esempi.

Come utilizzare l'operatore freccia in Java?

In questa illustrazione, il metodo draw() dell'interfaccia Drawable è stato implementato utilizzando un'espressione lambda e l'operatore freccia. Vedere l'illustrazione seguente.

Shilpa Shetty età

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

Produzione:

java inverte una stringa
Operatore freccia in Java

Possiamo utilizzare l'espressione lambda nella programmazione Java in vari modi perché è un'ottima tecnica per scrivere codice conciso utilizzando un approccio funzionale. Ecco diversi casi in cui possiamo usarlo.

Operatore di array nella raccolta Java

In questa illustrazione utilizziamo un'espressione lambda per filtrare i dati da un ArrayList. Per ottenere il risultato desiderato, abbiamo utilizzato il metodo filter() e l'API stream. Puoi vedere quanto è più semplice scrivere il codice lambda rispetto al codice non lambda. Vedere l'illustrazione seguente.

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>

Produzione:

panda che creano dataframe
 Tutorial and example: 100500.0 Website: 25000.0 

Operatore di array nel thread Java

Per implementare il metodo run() di entrambe le interfacce eseguibili, in questa istanza abbiamo utilizzato l'espressione lambda. Un'espressione lambda può essere utilizzata con facilità perché Runnable ha un'interfaccia a metodo singolo. vedere l'illustrazione qui sotto.

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

Produzione:

 Thread is running...