logo

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.

linuxový příkaz pro zip
 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.

bash rozdělit řetězec oddělovačem

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.

rosomák vs jezevec

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:

c náhodné číslo
 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...