logo

Arrow Operator Java

„Java“ rodyklės operatorius (->) paaiškinamas šiame straipsnyje kartu su pavyzdiniu kodu, kuris padės suprasti koncepciją.

Rodyklės operatorius, naudojamas lambda išraiškoms kurti, buvo įvestas kartu su lambda išraiškos funkcionalumu Java 8. Jis atskiria išraiškos kūną nuo argumentų.

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

Kad „Java“ kodas būtų suprantamesnis ir glaustesnis, „Java 8“ įdiegta lambda išraiška gali būti naudojama anoniminėms klasėms.

Žemiau pateikta iliustracija, kaip sukurti anoniminę klasę naudojant „Java“ prieš „Java 8“.

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

Ir štai kaip galime atlikti pirmiau minėtą užduotį Java 8 naudodami lambda išraišką.

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

Norėdami geriau suprasti, kaip naudoti lambda ir rodyklių operatorius, pradėkime nuo kelių pavyzdžių.

Kaip naudoti „Arrow Operator“ „Java“?

Šioje iliustracijoje Drawable sąsajos braižybos () metodas buvo įgyvendintas naudojant lambda išraišką ir rodyklės operatorių. Žiūrėkite žemiau esančią iliustraciją.

rodyklė c

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

Išvestis:

išteklių paskirstymo grafikas
Arrow Operator Java

Mes galime panaudoti lambda išraišką Java programavime įvairiais būdais, nes tai yra puiki technika rašyti glaustą kodą naudojant funkcinį metodą. Štai keli atvejai, kai galime jį naudoti.

Masyvo operatorius Java kolekcijoje

Šioje iliustracijoje mes naudojame lambda išraišką norėdami filtruoti duomenis iš ArrayList. Norėdami pasiekti norimą rezultatą, naudojome filtro () metodą ir srauto API. Galite pamatyti, kiek daug paprasčiau rašyti lambda kodą nei ne lambda kodą. Žiūrėkite žemiau esančią iliustraciją.

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>

Išvestis:

java lambda išraiškos
 Tutorial and example: 100500.0 Website: 25000.0 

Masyvo operatorius Java gijoje

Norėdami įgyvendinti abiejų paleidžiamų sąsajų metodą run (), šiuo atveju naudojome lambda išraišką. Lambda išraišką galima naudoti lengvai, nes Runnable turi vieno metodo sąsają. žiūrėkite žemiau esančią iliustraciją.

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

Išvestis:

 Thread is running...