반응형
- Java Functional하게 사용하기 - 42022-02-17 00:13:19Stream의 종결 처리 중간처리를 통과한 Stream 데이터들을 종결 처리로 합을 구하거나 , 최대 최소 값을 구하건, 리스트로 다시 모으는 등의 종결 작업을 할 수 있는데 이번에는 Stream의 종결 처리에 대해 알아 보겠습니다. 우선 최대, 최소, 개수를 얻을 수 있는 종결 처리 메서드를 보면 이렇게 Comparator를 람다식으로 파라미터로 전달해 Optional 반환값을 받을 수 있습니다. min 또한 마찬가지이고 count를 보자면 이런식으로 filter를 통과한 Stream 데이터들의 개수를 반환하는 것을 볼 수 있습니다. 다음은 allMatch, anyMatch를 보겠습니다. allMatch는 Stream 안의 모든 데이터가 predicate을 만돈해야 true를 반환하고 anyMatch는..
- Java Functional하게 사용하기 - 32022-02-12 22:04:01Optional을 사용해봅시다. null인지 아닌지 , null이 될 수 있는지 그럴 수 없는지, empty인지 아닌지 등을 편리하게 나타낼 수 있는 클래스죠 Optional.of를 사용해 Null이 아닌 오브젝트릴 이용해서 Optional을 만들고 Empty를 사용해서 빈 Optional을 만들고 ofNullable을 사용해서 Null인지 아닌지 모르는 오브젝트로 Optional을 만들 수 있는데 이렇게 만든 Optional을 가지고 이런식으로 Optional의 안에 있는 값을 확인하고 꺼내는 다양한 메서드를 사용할 수 있는데 isPresent()로 값의 존재 여부를 확인, get()으로 값을 꺼내고, orElse로 null인 경우 supplier로 공급되는 값을 리턴시키고, orElseThrow로 n..
- Java Functional하게 사용하기 - 22022-02-07 22:08:23Stream Colletion 형태로 구성된 데이터를 람다를 이용해 간결하고 직관적으로 프로세스하게 해준다. Stream을 사용해 기존의 반복문을 간결한 형태로 표현 가능하고 병렬 처리를 쉽게 할 수 있다. Stream이을 사용해 Data를 흐름의 형태로 처리한다고 생각했을 때 이 흐름을 처음, 중간, 끝으로 볼 수 있는데 각각 source를 stream으로 흐르게 하는 처음 filter, map 등의 intermediate operations (중간 처리) collect, reduce 등의 terminal operation (종결 처리) 으로 볼 수 있다. 우선 중간 처리에서 자주 사용하는 filter와 map을 보자면 filter는 predicate이 true를 반환하는 데이터만 존재하는 stream..
- Java Functional하게 사용하기 - 12022-02-03 21:20:14자바에서도 functional programming을 지원하고자 jdk1.8부터 java.util.function 패키지를 활용해서 함수를 객체의 형태로 풀어내 프로그래밍이 가능해졌습니다. 기존의 "문제를 어떻게 풀어갈까?"에 대해 집중했던 객체 지향 프로그래밍은 명령형 프로그래밍의 범주이고 "무엇을 할까?"에 집중하는 함수형 프로그래밍은 선언형 프로그래밍의 범주로 봅니다. 함수형 프로그래밍 관련하여 글을 보면 많은 사람이 함수를 1급 시민으로서 사용하게 된다는 글을 작성하였는데 이는 함수/메서드의 매개변수로서 전달할 수 있는가? 함수/메서드의 반환값이 될 수 있는가? 변수에 담을 수 있는가? 위의 조건을 충족하는 것을 말합니다. 우선 java.util.function 패키지를 보면 @Functional..
반응형