반응형

람다 5

태태개발일지 - 김영한 고급JAVA (LAMBDA)

람다 메서드 참조 기존 람다 방식Lambda a = (int a, int b) -> {return a+b};Lambda b = (int a, int b) -> {return a+b}; 동일한 기능을 함수로 묶을 수 있다. Lambda a = (int a, int b) -> {add(a,b)};Lambda b = (int a, int b) -> {add(a,b)};public static int add (a ,b ){ return a+b;} 다음과 같이 함수로 묶을 수 있다. 하지만, 이것 역시 편리하게 사용할 수 있는 방법이 있는 것이다. 그것이 바로메서드 참조이다. 메서드 참조의 기본 문법 메서드 참조는 (::) 연산자를 사용한다.클래스명::메서드명(정적 메서드)참조변수::메서드명(인스턴스 메..

JAVA 2025.05.26

태태개발일지 - 김영한 자바 고급

람다 람다식은 함수형 인터페이스(추상 메서드가 하나인 인터페이스)의 인스턴스를 간결하게 표현하는 방법이다.Java 8부터 도입된 기능으로, 코드의 길이를 줄이고 가독성을 높여줍니다. 람다는 메서드만 전달하며, 익명클래스보다 더 간단하게 함수 객체를 만들 수 있습니다. 단, 람다는 함수형 인터페이스에만 사용할 수 있고, this 키워드는 외부 클래스의 인스턴스를 참조합니다 익명클래스 익명클래스는 이름이 없는 클래스로, 주로 일회성으로 인터페이스나 추상클래스를 구현할 때 사용한다. 예를 들어, Comparator나 Runnable 같은 인터페이스를 구현할 때 별도의 클래스를 만들지 않고 코드 내에서 바로 정의할 수 있다. 익명클래스는 여러 메서드를 구현할 수 있고, 내부에 필드나 초기화 블록도 선언할 수 있..

JAVA 2025.05.20

태태개발일지 - JAVA 고급편(3) 김영한 람다

람다&제네릭제네릭 사용 이유1. 중복과 가시성Function func1 = a -> a+3;Function2 func2 = a -> a+2; 이와같이 람다를 만들 때 비슷하거나 같은 코드를 여러개만든다면, 중복과 가시성에 문제가 생길 수 있음 2. 람다 대입Function func1 = a -> a+3;#Function2 func2 = a -> a+2;Function2 func2 = func1 (x) 아래와 같이 java 특성상 같은 값이라도 다른 자료형에 값을 대입할 수 없다. 즉 int s = 10String w = "10"w =s (x) 같은 값이라도 대입할 수 없기 때문이다. 제네릭&람다@FunctionalInterfacepublic interface Function { R apply(T ..

JAVA 2025.05.05

태태개발일지 - JAVA 고급편(3) 김영한 람다

고차함수 고차 함수(Higher-Order Function)는 함수를 인자로 받거나, 함수를 반환하는 함수를 의미한다 쉽게 말해서 기본적인 함수는 int, float, 객체 ... 간단한 자료형을 넘기지만, 함수자체를 넘기는 함수를 고차함수라고 한다. 즉, 함수 자체를 값처럼 전달하거나 반환할 수 있는 함수가 고차 함수다. 기본적인 함수는 int, float, 객체 등 단순 자료형을 인자로 받지만, 고차 함수는 함수 자체를 인자로 받거나 결과로 반환한다 import java.util.function.Function;public class HighOrderFunctionExample { // 함수를 인자로 받는 고차 함수 public static int compute(Function ope..

JAVA 2025.05.02

태태코딩 - 람다(김영한 실전자바 고급 3편)

요즘 AI공부를 시작하다보니, AI공부를 쉬고싶을 때 백엔드 공부로 치유하는 느낌이다,, 원래는 백엔드도 점점 공부라고 느껴지던 참이였는데,, 치료된건가..? 싶다 일단 AI 끝나면 멀티스레드를 마무리하고, 람다를 제대로 다시 공부해볼 예정이다. 효율적인 코드?역시 영한 강사님이다,, 아직 시작 부분이지만, 람다가 왜 필요한지 설명해주신다.머리속 코드로 작성해보자면 public void ex1(){ String ex1 = "행복"System.out.println("오늘은 "+ ex1+ "해요");} public void ex2(){ String ex2 = "우울"System.out.println("오늘은 "+ ex2+ "해요");}public class Main { public static void..

JAVA 2025.04.27
반응형