> Java > Java시작하기 > 본문

Java의 람다 표현식에 대한 자세한 소개

王林
풀어 주다: 2019-11-27 15:22:04
앞으로
2828명이 탐색했습니다.

Java의 람다 표현식에 대한 자세한 소개

람다 표현식이란 무엇인가요?

람다 식은 나중에 한 번 이상 실행할 수 있는 전이적 코드 블록입니다.

추천 Java 관련 동영상 튜토리얼: java 학습 동영상

예:

class action implements ActionListener{
	@Override
	public void actionPerformed(ActionEvent e){
		System.out.println("now time is"+new Date());
		Toolkit.getDefaultToolkit().beep();
	}

}
public class Main{
	public static void main(String[] args){
		action a=new action();
		Timer timer=new Timer(2000,a);
		timer.start();
		JOptionPane.showMessageDialog(null, "is quit?");
		//这个窗口用于防止main线程执行完毕直接结束
	}

}
로그인 후 복사

The action class in this code 객체는 실제로 코드 세그먼트로 Timer 생성자에 전달됩니다. Java는 객체 지향 사고를 기반으로 하는 언어이므로 함수 호출이 없고 코드 세그먼트가 전달되지 않으므로 필요한 코드를 캡슐화해야 합니다. class. , 위는 액션 클래스입니다. 람다 표현식을 사용하면 코드를 더욱 간결하게 만들 수 있습니다.

위 내용을 람다로 표현하면 다음과 같습니다.

public class Main{
	public static void main(String[] args){
		Timer timer=new Timer(2000,(ActionEvent e)->{
			System.out.println("now the time is"+new Date());
			Toolkit.getDefaultToolkit().beep();
		});
		timer.start();
		//结束
		
	}

}
로그인 후 복사

람다 표현식을 사용하면 코드가 매우 간결해질 수 있나요? 다음을 통해 e의 유형을 추론할 수 있다면, yes 매개변수 유형을 생략합니다. 매개변수가 하나만 있는 경우 다음과 같이 괄호를 생략할 수도 있습니다.

e->{
System.out.println(“now the time is”+new Date());
Toolkit.getDefaultToolkit().beep();
}
로그인 후 복사

이 람다 표현식은 다음과 동일할 수 있습니다.

ActionListener al=e->{
System.out.println(“now the time is”+new Date());
Toolkit.getDefaultToolkit().beep();
}
로그인 후 복사
# 🎜🎜#그런 다음 타이머 생성자에 넣으세요.


ActionListener 인터페이스로서 추상 메서드가 하나만 있습니다. 이는 함수형 인터페이스로서 충족해야 하는 조건입니다. 람다 식으로 작성할 수 있습니다.

그런 다음 이해하기 쉽도록 문자열 배열을 길이별로 정렬하는 코드를 구현합니다.

public class Main{
	public static void main(String[] args){
		String[] con=new String[]{"apple","cat","bannane","foot","do"};
		Arrays.sort(con,(str1,str2)->str1.length()-str2.length());
		//第一种实现  这儿因为直接返回值所以没有加"{"和"}"所以也不用加";" 上下文能推断出这是String类型参数,
		//所以不用加参数类型
		Comparator<String> compare = (str1,str2)->s1.length()-s2.length();
		Arrays.sort(con,compare);//第二种实现,还可以采用写一个类实现Comparator中的compare方法
		//如:
		com com1=new com();
		Arrays.sort(con.com1);//其本质都是传递一段代码
	}
	class com implements Compartor<String>{
		@Override
		public void compare(String str1,String str2){
			return str1.length()-str2.length();
		}
	}

}
로그인 후 복사
이 문서는

java빠른 시작 컬럼에서 제공하는 내용을 소개합니다. java 자세히보기 람다식, 모두 함께 배워보세요!

위 내용은 Java의 람다 표현식에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿