SeouliteLab

[Java/자바] BiPredicate의 or() 메소드 활용 예제 본문

프로그래밍

[Java/자바] BiPredicate의 or() 메소드 활용 예제

Seoulite Lab 2024. 3. 13. 08:21

BiPredicate의 or() 메소드란?

BiPredicate 인터페이스에는 두 개의 BiPredicate를 하나로 결합하는 or() 메소드가 있습니다. 이 메소드는 두 BiPredicate 중 하나라도 true를 반환하면 true를 반환합니다.

예제 1: 두 숫자가 양수인지 또는 짝수인지 확인하기

import java.util.function.BiPredicate;

BiPredicate<Integer, Integer> isPositive = (a, b) -> a > 0 && b > 0;
BiPredicate<Integer, Integer> isEven = (a, b) -> a % 2 == 0 && b % 2 == 0;

BiPredicate<Integer, Integer> positiveOrEven = isPositive.or(isEven);

boolean result1 = positiveOrEven.test(5, 7);
boolean result2 = positiveOrEven.test(4, 6);

System.out.println("Are both numbers positive or even? " + result1); // 출력: false
System.out.println("Are both numbers positive or even? " + result2); // 출력: true

이 예제에서는 or() 메소드를 사용하여 두 숫자가 양수이거나 짝수인지 확인합니다.

예제 2: 두 문자열이 "java"를 포함하거나 길이가 5 이상인지 확인하기

import java.util.function.BiPredicate;

BiPredicate<String, String> containsJava = (str1, str2) -> str1.contains("java") && str2.contains("java");
BiPredicate<String, String> lengthGreaterThanOrEqualToFive = (str1, str2) -> str1.length() >= 5 && str2.length() >= 5;

BiPredicate<String, String> javaOrLength = containsJava.or(lengthGreaterThanOrEqualToFive);

boolean result1 = javaOrLength.test("java programming", "python");
boolean result2 = javaOrLength.test("python", "java script");

System.out.println("Do both strings contain 'java' or have length greater than or equal to 5? " + result1); // 출력: false
System.out.println("Do both strings contain 'java' or have length greater than or equal to 5? " + result2); // 출력: true

이 예제에서는 or() 메소드를 사용하여 두 문자열이 "java"를 포함하거나 길이가 5 이상인지 확인합니다.

예제 3: 두 숫자 중 하나가 10 이상이거나 100 이하인지 확인하기

import java.util.function.BiPredicate;

BiPredicate<Integer, Integer> isTenOrMore = (a, b) -> a >= 10 || b >= 10;
BiPredicate<Integer, Integer> isHundredOrLess = (a, b) -> a <= 100 || b <= 100;

BiPredicate<Integer, Integer> tenOrHundred = isTenOrMore.or(isHundredOrLess);

boolean result1 = tenOrHundred.test(5, 120);
boolean result2 = tenOrHundred.test(15, 90);

System.out.println("Is either number 10 or more, or 100 or less? " + result1); // 출력: true
System.out.println("Is either number 10 or more, or 100 or less? " + result2); // 출력: true

이 예제에서는 or() 메소드를 사용하여 두 숫자 중 하나가 10 이상이거나 100 이하인지 확인합니다.