📜  Java .util。 Java中的函数.IntPredicate接口与示例(1)

📅  最后修改于: 2023-12-03 14:42:12.384000             🧑  作者: Mango

Java.util中的函数接口IntPredicate

在Java中,函数式接口是指只有一个抽象方法的接口。IntPredicate是一个函数式接口,该接口定义了一个用于检查整型值的方法。

IntPredicate接口定义
@FunctionalInterface
public interface IntPredicate {
    boolean test(int value);
    ...
}

IntPredicate接口有一个方法:test(int),该方法接受一个整数作为参数并返回一个布尔值。如果该整数满足某个条件,则返回true;否则返回false。如果需要在Java中测试某些整型值,IntPredicate是一个非常有用的函数接口。

示例

以下是一个简单的例子,演示如何使用IntPredicate接口。

import java.util.function.IntPredicate;

public class IntPredicateExample {

   public static void main(String[] args) {

      // Create an IntPredicate that checks whether an int value is even
      IntPredicate isEven = n -> n % 2 == 0;

      // Test the IntPredicate with some values
      System.out.println(isEven.test(5)); // Prints "false"
      System.out.println(isEven.test(6)); // Prints "true"
   }
}

在这个例子中,我们创建了一个IntPredicate对象isEven,该对象检查一个整数是否为偶数。我们使用isEven对5和6进行测试,得到false和true。

使用IntPredicate进行过滤

IntPredicate接口可以与其他Java类库中的函数式接口一起使用,以实现一些功能。以下示例演示了如何使用IntPredicate接口进行过滤。

import java.util.Arrays;
import java.util.function.IntPredicate;

public class IntPredicateFilterExample {

   public static void main(String[] args) {

      // Create an array of integer values
      int[] values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

      // Create an IntPredicate that checks whether an int value is even
      IntPredicate isEven = n -> n % 2 == 0;

      // Filter the array using the IntPredicate
      int[] evenValues = Arrays.stream(values)
                              .filter(isEven)
                              .toArray();

      // Print out the filtered array
      System.out.println(Arrays.toString(evenValues));
   }
}

在这个例子中,我们创建了一个IntPredicate对象isEven,它检查一个整数是否为偶数。我们使用Java 8的流API对一个整数数组进行过滤,使用isEven作为过滤器,并将结果存储在另一个整数数组evenValues中。最后,我们打印出过滤后的数组。