logo

Operador de seta em Java

O operador de seta (->) em Java é explicado neste artigo junto com alguns exemplos de código para ajudá-lo a compreender o conceito.

O operador de seta, usado para criar expressões lambda, foi introduzido junto com a adição da funcionalidade de expressão lambda no Java 8. Ele divide o corpo da expressão dos argumentos.

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

Para tornar o código Java mais compreensível e conciso, a expressão lambda, que foi introduzida pelo Java 8, pode ser empregada para classes anônimas.

Uma ilustração de como construir uma classe anônima usando Java anterior ao Java 8 é mostrada abaixo.

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

E aqui está como podemos realizar a tarefa mencionada em Java 8 usando uma expressão lambda.

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

Para entender melhor como usar os operadores lambda e arrow, vamos começar com alguns exemplos.

Como usar o operador Arrow em Java?

Nesta ilustração, o método draw() da interface Drawable foi implementado usando uma expressão lambda e o operador de seta. Veja a ilustração abaixo.

M.java

formulário completo do ctc
 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(); } } 

Saída:

Operador de seta em Java

Podemos utilizar a expressão lambda na programação Java de várias maneiras porque é uma ótima técnica para escrever código sucinto usando uma abordagem funcional. Aqui estão vários casos em que podemos usá-lo.

Operador de array na coleção Java

Nesta ilustração, usamos uma expressão lambda para filtrar dados de um ArrayList. Para alcançar o resultado desejado, usamos o método filter() e a API stream. Você pode ver como é mais simples escrever código lambda do que código não lambda. Veja a ilustração abaixo.

número do palíndromo

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>

Saída:

decodificação base64 em js
 Tutorial and example: 100500.0 Website: 25000.0 

Operador de array em thread Java

Para implementar o método run() de ambas as interfaces executáveis, usamos a expressão lambda nesta instância. Uma expressão lambda pode ser usada com facilidade porque Runnable possui uma interface de método único. veja a ilustração abaixo.

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

Saída:

 Thread is running...