'Books/Modern Java In Action' 카테고리의 글 목록
sol-b.tistory.com
Mordern Java In Acation을 읽고 간단하게 Lambda와 Stream을 정리한 글입니다.
Lambda와 Stream
Lambda와 Stream이 등장한 이유는 빅데이터를 효율적으로 관리하기 위해 나왔습니다.
간단하게 설명하자면 아래와 같습니다.
빅데이터지원 ➡️ 병렬화 강화 ➡️ 컬렉션 강화 ➡️
스트림강화 ➡️ 람다 도입 ➡️ 함수형 인터페이스 도입
Lambda
함수형 인터페이스를 간단하게 실행할 수 있는 코드블럭
함수형 인터페이스에서만 사용이 가능합니다.
즉, 코드블록(함수형 인터페이스의 구현체)을 변수처럼 사용할 수 있다는 것입니다.
익명 객체조자 없이 바로 코드블록만 사용하면 됩니다.
함수형 인터페이스
추상 메서드 한개만 정의되어있는 인터페이스 입니다.
자바에서 제공하는 함수형 인터페이스
Predicate | T -> boolean | boolean test(T t) |
Consumer | T -> void | void accept(T t) |
Supplier | () -> T | T get() |
Function<T, R> | T -> R | R apply(T t) |
Comparator | (T, T) -> int | int compare(T o1, T o2) |
Runnable | () -> void | void run() |
Callable | () -> T | V call() |
Stream
Stream의 가장 큰장점은 How가아닌 What관점에서 데이터를 수집한다는 것입니다.
즉, Collection처럼 어떻게 하라가 아닌 SQL구문처럼 무엇을 원한다의 질의를 할 수 있습니다.
Stream은 Lambda, 메서드 레퍼런스와 같이 사용할 수 있습니다.
Stream 주의점
- 무한 스트림
- autoBoxing
- IntStream , DoubleStream , LongStream을 통해 효율을 높일 수 있습니다.
'Java' 카테고리의 다른 글
equals 사용시 주의할점 (0) | 2024.01.05 |
---|---|
InnerClass의 메모리 누수 위험 (0) | 2023.12.20 |
Error와 Exception의 차이 (0) | 2023.10.10 |
ThreadPool (1) | 2023.10.08 |
자바 컬렉션 (0) | 2023.09.27 |