lambda 에 대한 노트
3460 단어 Java
package com.cjx913.lambda;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
public class Main {
public static void main(String[] args) {
// Consumer
// ,
Consumer consumer = str -> System.out.println(str);
//
consumer.accept("aaaa");
ConsumerInterface consumerInterface = str -> System.out.println(str);
consumerInterface.consume("aaaaaaaaaaa");
// Supplier
// ,
Supplier supplier = () -> "cjx913";
System.out.println(supplier.get());
SupplierInterface supplierInterface = () -> "cjx913";
System.out.println(supplierInterface.supply());
// Function
// ,T ,R
//Integer String
Function function = integer -> String.valueOf(integer);
System.out.println(function.apply(34));
// String Long
Function andThen = function.andThen(Long::valueOf);
System.out.println(andThen.apply(24));
// Long Double
Function then = andThen.andThen(Long::doubleValue);
System.out.println(then.apply(22));
//---------- ----------
Function f = x -> x * 2.0 + 5.2;
Function g = x -> (x + 5) * 2.4;
Function t = x -> x * x - 3.1;
Function result1 = f.andThen(g).andThen(t);
System.out.println("t(g(f(3.2)))=" + result1.apply(3.2));//t(g(f(3.2)))
Function result2 = f.compose(g).compose(t);
System.out.println("f(g(t(3.2)))=" + result2.apply(3.2));//f(g(t(3.2)))
FunctionInterface functionInterface = (integer) -> integer + "cjx913";
System.out.println(functionInterface.apply(32));
// Predicate
Predicate predicate = str -> str.startsWith("a") ? true : false;
System.out.println(predicate.test("abcd"));
System.out.println(predicate.test("dcba"));
Predicate and = predicate.and(str -> str.startsWith("d") ? true : false);
System.out.println(and.test("dcba"));// :predicate&&and
Predicate or = predicate.or(str -> str.startsWith("d") ? true : false);
System.out.println(or.test("dcba"));// :predicate||or
PredicateInterface predicateInterface = str -> str.startsWith("a") ? true : false;
System.out.println(predicateInterface.test("abcd"));
System.out.println(predicateInterface.test("dcba"));
}
public interface ConsumerInterface {
void consume(String string);
}
public interface SupplierInterface {
String supply();
}
public interface FunctionInterface {
String apply(Integer integer);
}
public interface PredicateInterface {
boolean test(String string);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.