logo

Arrow Operator v jazyku Java

Operátor šípky (->) v jazyku Java je vysvetlený v tomto článku spolu s ukážkovým kódom, ktorý vám pomôže pochopiť tento koncept.

Operátor šípky, ktorý sa používa na vytváranie výrazov lambda, bol zavedený spolu s pridaním funkcie výrazu lambda v jazyku Java 8. Oddeľuje telo výrazu od argumentov.

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

Aby bol kód Java zrozumiteľnejší a stručnejší, výraz lambda, ktorý zaviedla Java 8, možno použiť pre anonymné triedy.

Ilustrácia toho, ako vytvoriť anonymnú triedu pomocou Java pred Java 8, je uvedená nižšie.

veľkosť lyžičky
 Runnable r1 = new Runnable() { @Override public void run() { System.out.print(' method Run '); } }; 

A tu je návod, ako môžeme vykonať vyššie uvedenú úlohu v jazyku Java 8 pomocou výrazu lambda.

zoznam java do poľa
 Runnable r1 = ()-> System.out.print(' method Run '); 

Aby ste lepšie pochopili, ako používať operátory lambda a šípky, začnime niekoľkými príkladmi.

Ako používať Arrow Operator v Jave?

Na tomto obrázku bola metóda draw() rozhrania Drawable implementovaná pomocou výrazu lambda a operátora šípky. Pozrite si ilustráciu nižšie.

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ýkon:

css zarovnanie textu
Arrow Operator v jazyku Java

Výraz lambda v programovaní Java môžeme využiť rôznymi spôsobmi, pretože je to skvelá technika na písanie stručného kódu pomocou funkčného prístupu. Tu je niekoľko príkladov, kde to môžeme použiť.

Operátor poľa v kolekcii Java

Na tomto obrázku používame výraz lambda na filtrovanie údajov z ArrayList. Na dosiahnutie požadovaného výsledku sme použili metódu filter() a stream API. Môžete vidieť, o koľko jednoduchšie je písať lambda kód ako nelambda kód. Pozrite si ilustráciu nižšie.

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ýkon:

10 miliónov
 Tutorial and example: 100500.0 Website: 25000.0 

Operátor poľa vo vlákne Java

Aby sme implementovali metódu run() oboch spustiteľných rozhraní, v tomto prípade sme použili výraz lambda. Výraz lambda možno ľahko použiť, pretože Runnable má rozhranie s jednou metódou. pozri ilustráciu nižšie.

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ýkon:

 Thread is running...