SeouliteLab

[Java/자바] BiPredicate 인터페이스: 예제와 활용 본문

프로그래밍

[Java/자바] BiPredicate 인터페이스: 예제와 활용

Seoulite Lab 2024. 3. 13. 08:20

BiPredicate 인터페이스 소개

BiPredicate는 두 개의 인수를 받아들여 boolean 값을 반환하는 함수형 인터페이스입니다. 주로 두 개의 값 사이의 비교나 조건을 검사하는 데 사용됩니다.

예제 1: 두 정수의 합이 10보다 큰지 여부

import java.util.function.BiPredicate;

BiPredicate<Integer, Integer> sumGreaterThanTen = (a, b) -> a + b > 10;
boolean result = sumGreaterThanTen.test(5, 6);
System.out.println("Sum greater than 10? " + result);

이 예제에서는 BiPredicate를 사용하여 두 정수의 합이 10보다 큰지 여부를 검사합니다.

예제 2: 두 문자열의 길이를 비교하는 BiPredicate

import java.util.function.BiPredicate;

BiPredicate<String, String> compareStringLength = (str1, str2) -> str1.length() == str2.length();
boolean result = compareStringLength.test("apple", "banana");
System.out.println("Both strings have equal length? " + result);

이 예제에서는 BiPredicate를 사용하여 두 문자열의 길이를 비교합니다.

예제 3: 두 숫자가 같은지 여부 확인하기

import java.util.function.BiPredicate;

BiPredicate<Integer, Integer> isEqual = Integer::equals;
boolean result = isEqual.test(10, 10);
System.out.println("Are both numbers equal? " + result);

이 예제에서는 BiPredicate를 사용하여 두 숫자가 서로 같은지 여부를 확인합니다.

예제 4: 두 문자열이 동일한 문자로 구성되어 있는지 확인하기

import java.util.function.BiPredicate;

BiPredicate<String, String> sameCharacters = (str1, str2) -> {
    char[] charArray1 = str1.toCharArray();
    char[] charArray2 = str2.toCharArray();
    Arrays.sort(charArray1);
    Arrays.sort(charArray2);
    return Arrays.equals(charArray1, charArray2);
};

boolean result = sameCharacters.test("listen", "silent");
System.out.println("Do both strings have same characters? " + result);

이 예제에서는 BiPredicate를 사용하여 두 문자열이 동일한 문자로 구성되어 있는지 확인합니다.

예제 5: 두 숫자의 곱이 짝수인지 확인하기

import java.util.function.BiPredicate;

BiPredicate<Integer, Integer> isProductEven = (a, b) -> (a * b) % 2 == 0;
boolean result = isProductEven.test(4, 5);
System.out.println("Is product even? " + result);

이 예제에서는 BiPredicate를 사용하여 두 숫자의 곱이 짝수인지 확인합니다.

예제 6: 첫 번째 숫자가 두 번째 숫자보다 큰지 여부 확인하기

import java.util.function.BiPredicate;

BiPredicate<Integer, Integer> isFirstGreaterThanSecond = (a, b) -> a > b;
boolean result = isFirstGreaterThanSecond.test(8, 5);
System.out.println("Is first number greater than second? " + result);

이 예제에서는 BiPredicate를 사용하여 첫 번째 숫자가 두 번째 숫자보다 큰지 여부를 확인합니다.