logo

Java의 화살표 연산자

이 기사에서는 개념을 이해하는 데 도움이 되는 몇 가지 샘플 코드와 함께 Java의 화살표 연산자(->)를 설명합니다.

람다 표현식을 생성하는 데 사용되는 화살표 연산자는 Java 8의 람다 표현식 기능 추가와 함께 도입되었습니다. 이는 표현식 본문을 인수에서 나눕니다.

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

Java 코드를 보다 이해하기 쉽고 간결하게 만들기 위해 Java 8에 도입된 람다 표현식을 익명 클래스에 사용할 수 있습니다.

Java 8 이전에 Java를 사용하여 익명 클래스를 빌드하는 방법은 다음과 같습니다.

자바 구조
 Runnable r1 = new Runnable() { @Override public void run() { System.out.print(' method Run '); } }; 

람다 표현식을 활용하여 Java 8에서 앞서 언급한 작업을 수행하는 방법은 다음과 같습니다.

수정자 키
 Runnable r1 = ()-> System.out.print(' method Run '); 

람다 및 화살표 연산자를 사용하는 방법을 더 잘 이해하기 위해 몇 가지 예부터 시작해 보겠습니다.

Java에서 화살표 연산자를 사용하는 방법은 무엇입니까?

이 그림에서는 Drawable 인터페이스의 draw() 메서드가 람다 표현식과 화살표 연산자를 사용하여 구현되었습니다. 아래 그림을 참조하세요.

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

산출:

int를 문자열로 변환 C++
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>

산출:

자바 열거형
 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...