본문 바로가기
Tech-Java

람다와 스트림 (Lambda & Stream)

by redcrow 2018. 5. 2.



다른 language에서는 function이라고 부르던 것을 OOP에서는 method라고 부른다. 

차이는 함수는 그냥 호출할 수 있는데 비해 메소드는 클래스내에 존재해야 하므로 클래스가 필요하며 , 객체를 통해 호출해야 한다. 


Java 는 이러한 메서드의 특성상 특정기능을 override하거나 overload 하기 위해서는 inner 클래스를 생성한 뒤 그 안에 메서드를 구현해야하는 불편함이 있었다. 


al.sort(new Comparator<StudentScore>() {

//compare의 값이 음수이면 내림차순, 양수이면 올림차순

public int compare(StudentScore a , StudentScore b){

return  b.score - a.score;

}

 }

);


이 코드는 정렬을 재정의하기 위해  Comparator의 compare 메서드를 수정한 경우이다. 복잡하다.



Java 8에서는 메서드를 클래스 없이도 정의가 가능하도록 메서드를 하나의 식(Expression)으로 표현할 수 있게되었다.

이를  람다식(Lambda Expression)이라고 하며, 람다식은 메서드의 이름 및 리턴값이 필요없어진다.

'Tech-Java' 카테고리의 다른 글

자주쓰는 Excpression  (0) 2018.04.25
Java 잊기쉬운거  (0) 2018.04.19
Collection의 Sort 재정의 - Comparator  (0) 2017.08.20
기타등등  (0) 2017.04.02
Java에서 정규표현식(Regular Expression) 사용하기  (0) 2016.11.06

댓글