Arrow Operator v Javě

Arrow Operator v Javě

Operátor šipky (->) v Javě je vysvětlen v tomto článku spolu s ukázkovým kódem, který vám pomůže pochopit tento koncept.

Operátor šipky, který se používá k vytváření výrazů lambda, byl zaveden spolu s přidáním funkce výrazu lambda v Javě 8. Odděluje tělo výrazu od argumentů.

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

Aby byl kód Java srozumitelnější a stručnější, lze pro anonymní třídy použít výraz lambda, který byl zaveden Java 8.

Níže je uvedena ilustrace toho, jak vytvořit anonymní třídu pomocí Javy před Javou 8.

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

A zde je návod, jak můžeme provést výše zmíněný úkol v Javě 8 s využitím výrazu lambda.

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

Abychom lépe pochopili, jak používat operátory lambda a šipky, začněme několika příklady.

Jak používat Arrow Operator v Javě?

Na tomto obrázku byla metoda draw() rozhraní Drawable implementována pomocí výrazu lambda a operátoru šipky. Viz obrázek níže.

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

Výstup:

Arrow Operator v Javě

Výraz lambda můžeme v programování v jazyce Java využít různými způsoby, protože je to skvělá technika pro psaní stručného kódu pomocí funkčního přístupu. Zde je několik případů, kdy jej můžeme použít.

Operátor pole v kolekci Java

V tomto obrázku používáme výraz lambda k filtrování dat z ArrayList. K dosažení požadovaného výsledku jsme použili metodu filter() a stream API. Můžete vidět, o kolik jednodušší je psát lambda kód než nelambda kód. Viz obrázek níže.

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> 

Výstup:

 Tutorial and example: 100500.0 Website: 25000.0  

Operátor pole ve vláknu Java

Abychom implementovali metodu run() obou runnable rozhraní, použili jsme v tomto případě výraz lambda. Výraz lambda lze snadno použít, protože Runnable má rozhraní jediné metody. viz obrázek níže.

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

Výstup:

 Thread is running...