java8 (4) 썸네일형 리스트형 [Java] Optional<T> 클래스 Optional 개념 Java8부터 지원하는 Optional 클래스는 null이 올 수 있는 값을 감싸는 Wrapper 클래스로, NPE(Null Pointer Exception)이 발생하지 않도록 도와준다. * NPE(Null Pointer Exception)이란? 개발할 때 가장 많이 발생하는 예외 중 하나이다. NPE를 피하려면 null 여부를 검사해야 하는데, null 검사를 해야하는 변수가 많은 경우 코드가 복잡해지고 번거롭다. 그래서 null 대신 초기값을 사용하기를 권장하기도 한다. List names = getNames(); names.sort(); // names가 null이라면 NPE 발생 List names = getNames(); // NPE를 방지하기 위해 null 검사 해야함 i.. [Java] 메소드 레퍼런스(Method reference, ::의 의미) 메소드 레퍼런스란? lambda 표현식을 더 간단하게 표현하는 방법이다. 예를 들어, 다음은 람다식으로 Hello를 출력하는 코드이다. (Consumer는 어떤 객체를 입력받아 void를 출력시키는 함수형 인터페이스이다.) Consumer func = text -> System.out.println(text); func.accept("Hello"); 위의 람다식은 다음과 같이 System.out::println이라는 메소드 레퍼런스로 표현할 수 있다. Consumer func = System.out::println; func.accept("Hello"); 메소드 레퍼런스는 ClassName::MethodName 형식으로 입력한다. 메소드를 호출하는 것이지만 괄호는 생략한다. 위의 예제처럼, 메소드 레퍼런.. [Java] Stream API - filter, map, flatMap Stream API란? java8부터 추가된 API로 함수형 인터페이스(람다식)를 적용하여 컬렉션과 같은 저장요소를 반복적으로 처리할 수 있는 기능이다. 1. filter filter는 말 그대로 특정조건으로 스트림의 컨텐츠를 필터링하는 것이다. 함수에 filter(조건)으로 조건을 넣으면 된다. 아래 코드를 보면 c로 시작하는 문자열만 필터링하도록 조건을 설정하였고 이 조건에 해당하는 문자의 stream이 리턴되었다. List list = Arrays.asList("a1", "a2", "b1", "b2", "c2", "c1", "c3"); Stream stream1 = list.stream(); Stream filtered = stream1.filer(s -> s.startsWith("c")); fil.. [Java] 람다식(lambda expression) 람다식이란? 람다 함수는 java8부터 추가된 기능으로 익명 객체를 생성하기 위한 표현식을 말한다. 람다식 이전 public interface Goods{ public void doSome(); } public class Computer implements Goods{ @Override public void doSome() { System.out.println("do Operation!"); } } public class Main{ public static void main(String[] args){ Goods com = new Computer(); com.doSome(); } } 기존 자바에서 interface를 이용해 다형성을 제공하기 위해서는 interface를 만들고, 그것을 구현한 class를.. 이전 1 다음