람다란? 익명 함수를 단순화한 것 이름은 없지만 파라미터 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트를 가짐 특정 클래스에 종속되지 않아 함수라고 불림 람다의 구성 (Apple apple) -> apple.getWeight() > 150; (Apple apple) : 람다 파라미터 apple.getWeight() > 150 : 람다의 반환값에 해당하는 람다 바디 -> : 람다의 파라미터 리스트와 바디를 구분하는 화살표 람다의 문법 // 표현식 스타일 (parameters) -> expression // 블록 스타일 (parameters) -> { statements; } public void process(Runnable r) { r.run(); } process(() -> System.ou..
동작 파라미터화란? 아직은 어떻게 실행할 것인지 결졍하지 않은 코드 블록을 의미한다. 애플리케이션을 만들고 나면 사용자마다 불만이 있을 수도 있는데 그럴 때마다 의견을 반영하여 코드를 추가 구현을 해야한다. 하지만 요구사항이 있을 때마다 매번 같은 코드를 복붙하여 구현하게 되면 유지보수성과 DRY(같은 것을 반복하지 말 것) 원칙을 어기게 된다. 동작파라미터화를 이용하면 요구사항에 효과적으로 대응할 수 있다. 다음은 녹색사과만을 필터링하여 리스트에 담는 코드이다. public static List filterGreenApples(List inventory) { List result = new Arraylist(); weight) { result. add(apple); } 조건문의 코드가 중복된다. 동작 ..
스트림이란? 빅데이터라는 바람이 불기 시작하면서 방대한 데이터를 효율적으로 처리하기 위해 병렬 프로그래밍이 필요해지기 시작할 무렵 자바8 이전에는 병렬 프로그래밍을 위해 스레드를 사용하였다. 하지만 이렇게 직접 관리를 하다보니 문제가 발생할 수 있고 까다롭다는 단점이 있었다. 이를 인식하고 자바8부터 보다 쉽게 병렬 프로그래밍이 가능하도록 스트림 API를 제공한다. 스트림이란 여러개의 함수를 조립라인처럼 연속적으로 연결하여 보다 간결하게 결과를 만드는 작업을 도와주는 API이다. 이 일련된 작업을 파이프라인이라고 부른다. 파이프라인을 구성하기 위해서는 함수가 값이 될 필요가 있다. 자바 8은 기존의 기본 값과 객체 값 말고도 함수 자체를 값의 형식으로 만들었다. File[] hiddenFiles = ne..