Java : BiPredicate - API使用例
BiPredicate (Java SE 18 & JDK 18) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。
概要
BiPredicate は、2つのパラメータと戻り値 boolean の関数型インタフェースです。
final var predicate = new BiPredicate<Integer, String>() {
@Override
public boolean test(Integer i, String s) {
return Integer.decode(s).equals(i);
}
};
final var ret1 = predicate.test(255, "0xff");
System.out.println(ret1); // true
final var ret2 = predicate.test(100, "0x100");
System.out.println(ret2); // false
メソッド
default BiPredicate<T,U> and (BiPredicate<? super T,? super U> other)
final var predicate1 = new BiPredicate<String, String>() {
@Override
public boolean test(String s1, String s2) {
return s1.equals(s2);
}
};
System.out.println(predicate1.test("ABC", "XYZ")); // false
System.out.println(predicate1.test("ABC", "ABC")); // true
System.out.println(predicate1.test("def", "def")); // true
final var predicate2 = new BiPredicate<String, String>() {
@Override
public boolean test(String s1, String s2) {
// すべて大文字であることをチェックします。
return s1.toUpperCase().equals(s1) && s2.toUpperCase().equals(s2);
}
};
System.out.println(predicate2.test("ABC", "XYZ")); // true
System.out.println(predicate2.test("ABC", "ABC")); // true
System.out.println(predicate2.test("def", "def")); // false
// 2つのPredicateをAND条件とします。
final var and = predicate1.and(predicate2);
System.out.println(and.test("ABC", "XYZ")); // false
System.out.println(and.test("ABC", "ABC")); // true
System.out.println(and.test("def", "def")); // false
default BiPredicate<T,U> negate ()
final var predicate = new BiPredicate<String, String>() {
@Override
public boolean test(String s1, String s2) {
return s1.equals(s2);
}
};
System.out.println(predicate.test("abc", "abc")); // true
System.out.println(predicate.test("abc", "xyz")); // false
final var negate = predicate.negate();
System.out.println(negate.test("abc", "abc")); // false
System.out.println(negate.test("abc", "xyz")); // true
default BiPredicate<T,U> or (BiPredicate<? super T,? super U> other)
final var predicate1 = new BiPredicate<String, String>() {
@Override
public boolean test(String s1, String s2) {
return s1.equals(s2);
}
};
System.out.println(predicate1.test("ABC", "XYZ")); // false
System.out.println(predicate1.test("ABC", "ABC")); // true
System.out.println(predicate1.test("def", "def")); // true
final var predicate2 = new BiPredicate<String, String>() {
@Override
public boolean test(String s1, String s2) {
// すべて大文字であることをチェックします。
return s1.toUpperCase().equals(s1) && s2.toUpperCase().equals(s2);
}
};
System.out.println(predicate2.test("ABC", "XYZ")); // true
System.out.println(predicate2.test("ABC", "ABC")); // true
System.out.println(predicate2.test("def", "def")); // false
// 2つのPredicateをOR条件とします。
final var or = predicate1.or(predicate2);
System.out.println(or.test("ABC", "XYZ")); // true
System.out.println(or.test("ABC", "ABC")); // true
System.out.println(or.test("def", "def")); // true
boolean test (T t, U u)
final var predicate = new BiPredicate<Integer, String>() {
@Override
public boolean test(Integer i, String s) {
return Integer.decode(s).equals(i);
}
};
final var ret1 = predicate.test(255, "0xff");
System.out.println(ret1); // true
final var ret2 = predicate.test(100, "0x100");
System.out.println(ret2); // false
関連記事
- API 使用例