logo

Operator strzałki w Javie

Operator strzałki (->) w Javie został wyjaśniony w tym artykule wraz z przykładowym kodem, który pomoże Ci zrozumieć tę koncepcję.

Operator strzałki służący do tworzenia wyrażeń lambda został wprowadzony wraz z dodaniem funkcjonalności wyrażeń lambda w Javie 8. Oddziela on treść wyrażenia od argumentów.

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

Aby kod Java był bardziej zrozumiały i zwięzły, w przypadku klas anonimowych można zastosować wyrażenie lambda, które zostało wprowadzone w Javie 8.

Poniżej pokazano ilustrację sposobu budowania anonimowej klasy przy użyciu języka Java starszego niż Java 8.

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

A oto jak możemy wykonać powyższe zadanie w Javie 8, wykorzystując wyrażenie lambda.

wskazówki w c
 Runnable r1 = ()-> System.out.print(' method Run '); 

Aby lepiej zrozumieć, jak używać operatorów lambda i strzałek, zacznijmy od kilku przykładów.

Jak używać operatora strzałki w Javie?

Na tej ilustracji metoda remis() interfejsu Drawable została zaimplementowana przy użyciu wyrażenia lambda i operatora strzałki. Zobacz ilustrację poniżej.

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

Wyjście:

przykład lambdy w Javie
Operator strzałki w Javie

Wyrażenie lambda możemy wykorzystać w programowaniu w Javie na wiele sposobów, ponieważ jest to świetna technika pisania zwięzłego kodu przy użyciu podejścia funkcjonalnego. Oto kilka przypadków, w których możemy z niego skorzystać.

Operator tablicy w kolekcji Java

Na tej ilustracji używamy wyrażenia lambda do filtrowania danych z listy ArrayList. Aby osiągnąć pożądany efekt wykorzystaliśmy metodę filter() oraz API strumieniowe. Możesz zobaczyć, o ile prostszy jest napisanie kodu lambda niż kod inny niż lambda. Zobacz ilustrację poniżej.

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>

Wyjście:

wybierz z wielu tabel sql
 Tutorial and example: 100500.0 Website: 25000.0 

Operator tablicy w wątku Java

Aby zaimplementować metodę run() obu uruchamialnych interfejsów, w tym przypadku użyliśmy wyrażenia lambda. Wyrażenia lambda można z łatwością używać, ponieważ Runnable ma interfejs z jedną metodą. spójrz na ilustrację poniżej.

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

Wyjście:

 Thread is running...