logo

Оператор стрілки в Java

Оператор зі стрілкою (->) у Java пояснюється в цій статті разом із прикладом коду, який допоможе вам зрозуміти концепцію.

Оператор зі стрілкою, який використовується для створення лямбда-виразів, був представлений разом із додаванням функціональних можливостей лямбда-виразів у Java 8. Він відокремлює тіло виразу від аргументів.

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

Щоб зробити код Java більш зрозумілим і лаконічним, замість анонімних класів можна використовувати лямбда-вираз, який був представлений у Java 8.

Нижче показано, як створити анонімний клас за допомогою Java до Java 8.

бурак озцивіт
 Runnable r1 = new Runnable() { @Override public void run() { System.out.print(' method Run '); } }; 

І ось як ми можемо виконати вищезазначене завдання в Java 8, використовуючи лямбда-вираз.

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

Щоб краще зрозуміти, як використовувати лямбда-оператори та оператори зі стрілками, почнемо з кількох прикладів.

Як використовувати оператор стрілки в Java?

На цій ілюстрації метод draw() інтерфейсу Drawable було реалізовано за допомогою лямбда-виразу та оператора стрілки. Дивіться ілюстрацію нижче.

скільки міст у Сполучених Штатах Америки

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

Вихід:

дистрибутивний закон булевої алгебри
Оператор стрілки в Java

Ми можемо використовувати лямбда-вираз у програмуванні на Java різними способами, оскільки це чудова техніка для написання стислого коду з використанням функціонального підходу. Ось кілька прикладів, де ми можемо його використати.

Оператор масиву в колекції Java

На цій ілюстрації ми використовуємо лямбда-вираз для фільтрації даних зі списку ArrayList. Щоб досягти бажаного результату, ми використали метод filter() і потоковий API. Ви бачите, наскільки простіше писати лямбда-код, ніж нелямбда-код. Дивіться ілюстрацію нижче.

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>

Вихід:

ініціалізатор словника c#
 Tutorial and example: 100500.0 Website: 25000.0 

Оператор масиву в потоці Java

Щоб реалізувати метод run() інтерфейсу, що виконується, ми використали лямбда-вираз у цьому випадку. Лямбда-вираз можна використовувати з легкістю, оскільки Runnable має єдиний інтерфейс методу. див. ілюстрацію нижче.

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

Вихід:

 Thread is running...