java

java활용 예시(Lambda 활용 함수)

goshek 2024. 9. 19. 12:41

package chapter19;

 

import java.util.Arrays;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

import java.util.function.Consumer;

import java.util.function.Function;

import java.util.function.Predicate;

import java.util.function.Supplier;

 

/*

람다 표현식

: 자바 8에서 도입된 함수형 프로그래밍 스타일의 표현식

> 익명 함수를 간결하게 표현하는 방법(가독성, 간결성 향상)

 

람다의 기본 형식

(매개변수) -> {실행할 코드}

 

lambda 예시

1) 매개변수 반환값이 없는 Lambda

()-> System.out.println("Hello, Lambda!");

 

2) 매개변수가 하나인 람다

x-> x*x;

 

3) 매개변수가 두 개 이상인 람다

(a, b)-> a+ b;

 

== 자바의 함수형 인터페이스 ==

1) Runnable

: 반환값이 없는 작업을 실행할 때 사용

 

2) Comparator<T>

: 두 객체를 비교하는 메소드를 정의하는 인터페이스

 

3) Function<T, R>

: 입력값을 받아 다른 타입의 결과값을 반환하는 인터페이스

*/

 

public class Lambda01 {

public static void main(String[] args) {

Runnable r= ()->{

System.out.println("프로그램 실행");

 

// run() 생략

};

// 반환이 없는 인터페이스의 실행

r.run();

 

Comparator<Integer> comparator= (x,y)-> x-y;

System.out.println(comparator.compare(10, 20));

 

List<Integer> numbers= Arrays.asList(5,3,8,1,2,7);

Collections.sort(numbers, comparator);

System.out.println(numbers);

 

Function<String, Integer> fx= s-> Integer.parseInt(s);

Integer num= fx.apply("10");

System.out.println(num);

 

// +) andThen 메소드: 사용 후 반환값을 활용

Integer num2= fx.andThen(result-> result+100).apply("20");

System.out.println(num2);

 

Predicate<Integer> even= n-> n%2==0;

System.out.println(even.test(10));

System.out.println(even.test(11));

 

Supplier<Integer> role= ()-> {

Integer result= num+999;

return result;

};

 

// >> get method로 반환값 출력

System.out.println(role.get());

 

//Counsumeer interface: 하나의 매개변수를 받고 아무 결과도 반환하지 않는 작업을 담당

Consumer<String> transform= s->{

System.out.println(s+ "서버에 접속 완료");

System.out.println(s+ "님 환영합니다.");

};

 

transform.accept("gwon");

}

}

'java' 카테고리의 다른 글

java 기본 용어 간단 정리  (0) 2024.09.21
java 활용 예시(예외)  (0) 2024.09.19
java 활용 예시 (Builder)  (0) 2024.09.19
java활용 예시(Stream)  (1) 2024.09.13
java활용 예시(lambda expression)  (0) 2024.09.13