모던 자바 인 액션

개발/Java

스트림(Stream)

스트림이란? 스트림은 자바 8 API에 새로 추가된 기능이다. 스트림을 이용하면 선언형(즉, 데이터를 처리하는 임시 구현 코드 대신 질의로 표현)으로 컬렉션 데이터를 처리할 수 있다. 또한 스트림을 이용하면 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다. 얼마나 코드가 간단해지는지 직접 눈으로 확인해보자! 먼저 기존 자바 코드다. List lowCaloricDishes = new ArrayList(); for(Dish dish : menu){ if(dish.getCalories() < 400){ lowCaloricDishes.add(dish); } } Collections.sort(lowCaloricDishes, new Comparator(){ //익명 클래스 전달 publi..

개발/Java

메서드 참조

메서드 참조 이제 람다 표현식에 이어 메서드 참조에 대해 알아보자. 메서드 참조를 이용해 기존의 메서드 정의를 재활용해서 람다처럼 전달할 수 있다. 때로는 람다 표현식보다 메서드 참조를 사용하는 것이 더 가독성이 좋으며 자연스러울 수 있다. 다음은 메서드 참조와 새로운 자바8 API를 이용한 정렬 예시다. //기존 코드 inventory.sort((Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight()))); //다음은 메서드 참조와 java.util.Comparator.comparing을 활용한 코드다. inventory.sort(comparing(Apple::getWeight)); //이제부터 이 문법에 대해 알아보자. 메서드 참조는 특정 메서..

개발/Java

람다 표현식이란?

람다란 표현식이란? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. 람다의 특징은 아래와 같다. 익명 : 보통의 메서드들과 달리 이름이 없으므로 익명이라 표현한다. 함수 : 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. 전달 : 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다. 간결성 : 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없다. 람다는 파라미터, 화살표, 바디로 이루어진다. (Apple a1, Apple a2) -> a1.get..

Debin
'모던 자바 인 액션' 태그의 글 목록