JAVA/포스팅

자바 Predicate의 결합

짜집퍼박사(짜박) 2023. 11. 22. 00:52

Predicate 인터페이스는 자바에서 주어진 인자에 대한 조건을 평가하는 함수형 인터페이스입니다. Predicate를 이용하면 주어진 조건을 만족하는지 여부를 판단하는 함수를 정의할 수 있습니다. Predicate의 and, or, negate 등의 메서드를 이용하면 여러 개의 Predicate를 조합하여 더 복잡한 조건을 만들 수 있습니다.

 

1. and 메서드

and 메서드는 현재 Predicate와 다른 Predicate를 논리적 AND로 결합하여 새로운 Predicate를 생성합니다.

Predicate<Integer> greaterThanTen = x -> x > 10;
Predicate<Integer> lessThanTwenty = x -> x < 20;

Predicate<Integer> betweenTenAndTwenty = greaterThanTen.and(lessThanTwenty);

boolean result = betweenTenAndTwenty.test(15); // true (15는 10보다 크고 20보다 작음)

 

2. or 메서드

or 메서드는 현재 Predicate와 다른 Predicate를 논리적 OR로 결합하여 새로운 Predicate를 생성합니다.

Predicate<Integer> lessThanFive = x -> x < 5;
Predicate<Integer> greaterThanFifteen = x -> x > 15;

Predicate<Integer> outsideRange = lessThanFive.or(greaterThanFifteen);

boolean result = outsideRange.test(10); // false (10은 5보다 크고 15보다 작지 않음)

 

3. negate 메서드

negate 메서드는 현재 Predicate의 논리적인 부정을 나타내는 새로운 Predicate를 생성합니다.

Predicate<String> isEmpty = String::isEmpty;
Predicate<String> isNotEmpty = isEmpty.negate();

boolean result = isNotEmpty.test("Hello"); // true (문자열이 비어있지 않음)

이러한 메서드들을 이용하여 Predicate를 결합하면 복잡한 조건을 표현할 수 있습니다. 이것은 주로 컬렉션의 데이터를 조건에 따라 필터링할 때나 다양한 검증 로직을 조합하여 사용할 때 유용합니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 스트림 만들기  (0) 2023.11.23
자바 스트림(stream)  (0) 2023.11.22
자바 Function의 합성  (0) 2023.11.22
자바 java.util.function패키지  (0) 2023.11.22
자바 함수형 인터페이스  (0) 2023.11.22