広告

Java : IntPredicate - API使用例

IntPredicate (Java SE 21 & JDK 21) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。


概要

1つのint値引数の述語(boolean値関数)を表します。 これは、Predicateに対して、intを消費するプリミティブ型特殊化を行ったものです。

クラス構成

IntPredicate は、プリミティブ型int パラメータと、戻り値 boolean の関数型インタフェースです。
主に、IntStreamラムダ式 として使われます。

final var predicate = new IntPredicate() {
    @Override
    public boolean test(int value) {
        // 偶数か判定します。
        return value % 2 == 0;
    }
};

final var stream = IntStream.of(1, 2, 3, 4);

final var ret = stream.filter(predicate).toArray();
System.out.println(Arrays.toString(ret)); // [2, 4]
// ラムダ式の例です。
final var stream = IntStream.of(1, 2, 3, 4);

final var ret = stream.filter(v -> v % 2 == 0).toArray();
System.out.println(Arrays.toString(ret)); // [2, 4]

メソッド

default IntPredicate and (IntPredicate other)

この述語と別の述語の短絡論理積を表す合成述語を返します。

final var predicate = new IntPredicate() {
    @Override
    public boolean test(int value) {
        // 偶数か判定します。
        return value % 2 == 0;
    }
};

System.out.println(predicate.test(1)); // false
System.out.println(predicate.test(2)); // true
System.out.println(predicate.test(13)); // false
System.out.println(predicate.test(14)); // true

final var other = new IntPredicate() {
    @Override
    public boolean test(int value) {
        return value < 10;
    }
};

System.out.println(other.test(1)); // true
System.out.println(other.test(2)); // true
System.out.println(other.test(13)); // false
System.out.println(other.test(14)); // false

final var and = predicate.and(other);

System.out.println(and.test(1)); // false
System.out.println(and.test(2)); // true
System.out.println(and.test(13)); // false
System.out.println(and.test(14)); // false

default IntPredicate negate ()

この述語の論理否定を表す述語を返します。

final var predicate = new IntPredicate() {
    @Override
    public boolean test(int value) {
        // 偶数か判定します。
        return value % 2 == 0;
    }
};

System.out.println(predicate.test(1)); // false
System.out.println(predicate.test(2)); // true
System.out.println(predicate.test(3)); // false
System.out.println(predicate.test(4)); // true

final var negate = predicate.negate();

System.out.println(negate.test(1)); // true
System.out.println(negate.test(2)); // false
System.out.println(negate.test(3)); // true
System.out.println(negate.test(4)); // false

default IntPredicate or (IntPredicate other)

この述語と別の述語の短絡論理和を表す合成述語を返します。

final var predicate = new IntPredicate() {
    @Override
    public boolean test(int value) {
        // 偶数か判定します。
        return value % 2 == 0;
    }
};

System.out.println(predicate.test(1)); // false
System.out.println(predicate.test(2)); // true
System.out.println(predicate.test(13)); // false
System.out.println(predicate.test(14)); // true

final var other = new IntPredicate() {
    @Override
    public boolean test(int value) {
        return value < 10;
    }
};

System.out.println(other.test(1)); // true
System.out.println(other.test(2)); // true
System.out.println(other.test(13)); // false
System.out.println(other.test(14)); // false

final var or = predicate.or(other);

System.out.println(or.test(1)); // true
System.out.println(or.test(2)); // true
System.out.println(or.test(13)); // false
System.out.println(or.test(14)); // true

boolean test (int value)

指定された引数でこの述語を評価します。

final var predicate = new IntPredicate() {
    @Override
    public boolean test(int value) {
        // 偶数か判定します。
        return value % 2 == 0;
    }
};

final var stream = IntStream.of(1, 2, 3, 4);

final var ret = stream.filter(predicate).toArray();
System.out.println(Arrays.toString(ret)); // [2, 4]
// ラムダ式の例です。
final var stream = IntStream.of(1, 2, 3, 4);

final var ret = stream.filter(v -> v % 2 == 0).toArray();
System.out.println(Arrays.toString(ret)); // [2, 4]

関連記事

ページの先頭へ