logo

Оператор стрелице у Јави

Оператор стрелице (->) у Јави је објашњен у овом чланку заједно са неким примером кода који ће вам помоћи да схватите концепт.

Оператор стрелице, који се користи за креирање ламбда израза, уведен је заједно са додатком функционалности ламбда израза у Јави 8. Он дели тело израза од аргумената.

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

Да би Јава код био разумљивији и концизнији, ламбда израз, који је увео Јава 8, може се користити као место за анонимне класе.

Илустрација како направити анонимну класу користећи Јаву пре Јава 8 је приказана у наставку.

10 од 1 милиона
 Runnable r1 = new Runnable() { @Override public void run() { System.out.print(' method Run '); } }; 

А ево како можемо да извршимо горе поменути задатак у Јави 8 користећи ламбда израз.

низ низа у ц
 Runnable r1 = ()-> System.out.print(' method Run '); 

Да бисмо боље разумели како да користимо операторе ламбда и стрелице, почнимо са неким примерима.

Како користити оператор стрелице у Јави?

На овој илустрацији, метод драв() за интерфејс Дравабле је имплементиран коришћењем ламбда израза и оператора стрелице. Погледајте илустрацију испод.

М.јава

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

Излаз:

листа сорт јава
Оператор стрелице у Јави

Ламбда израз можемо да користимо у Јава програмирању на различите начине јер је то одлична техника за писање сажетог кода коришћењем функционалног приступа. Ево неколико случајева где га можемо користити.

Оператор низа у колекцији Јава

У овој илустрацији користимо ламбда израз за филтрирање података из АрраиЛист-а. Да бисмо постигли жељени резултат, користили смо метод филтер() и стреам АПИ. Можете видети колико је једноставнији за писање ламбда кода од не-ламбда кода. Погледајте илустрацију испод.

М1.јава

 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>

Излаз:

рецурсион јава
 Tutorial and example: 100500.0 Website: 25000.0 

Оператор низа у Јава нити

Да бисмо имплементирали методу рун() за оба интерфејса који се могу покренути, користили смо ламбда израз у овој инстанци. Ламбда израз се може користити са лакоћом јер Руннабле има интерфејс са једним методом. погледајте илустрацију испод.

М3.јава

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

Излаз:

 Thread is running...