跳到主要内容

Java程序检查数组是否包含给定值

要理解这个例子,你需要了解以下 Java 编程 主题的知识:

示例 1:检查整型数组是否包含特定值

class Main {
public static void main(String[] args) {

int[] num = {1, 2, 3, 4, 5};
int toFind = 3;
boolean found = false;

for (int n : num) {
if (n == toFind) {
found = true;
break;
}
}

if(found)
System.out.println(toFind + " is found.");
else
System.out.println(toFind + " is not found.");
}
}

输出

3 is found.

在上述程序中,我们有一个整型数组存储在变量 num 中。同样,要查找的数字存储在 toFind 中。

现在,我们使用一个 for-each 循环 遍历 num 的所有元素,并逐个检查 toFind 是否等于 n

如果是,我们将 found 设置为 true 并退出循环。如果不是,我们进入下一个迭代。

示例 2:使用 Stream 检查数组中是否包含特定值

import java.util.stream.IntStream;

class Main {
public static void main(String[] args) {

int[] num = {1, 2, 3, 4, 5};
int toFind = 7;

boolean found = IntStream.of(num).anyMatch(n -> n == toFind);

if(found)
System.out.println(toFind + " is found.");
else
System.out.println(toFind + " is not found.");

}
}

输出

7 is not found.

在上述程序中,我们没有使用 for-each 循环,而是将数组转换为 IntStream 并使用其 anyMatch() 方法。

anyMatch() 方法接受一个谓词、表达式或返回布尔值的函数。在我们的例子中,谓词将流中的每个元素 ntoFind 进行比较并返回 truefalse

如果任何元素 n 返回 truefound 也被设置为 true

示例 3:检查包含非基本类型的数组中是否有特定值

import java.util.Arrays;

class Main {
public static void main(String[] args){

String[] strings = {"One", "Two", "Three", "Four", "Five"};
String toFind = "Four";

boolean found = Arrays.stream(strings).anyMatch(t -> t.equals(toFind));

if(found)
System.out.println(toFind + " is found.");
else
System.out.println(toFind + " is not found.");
}
}

输出

Four is found.

在上述程序中,我们使用了非基本数据类型 String,并使用 Arraysstream() 方法将其首先转换为流,然后使用 anyMatch() 来检查数组是否包含给定的值 toFind