用于检查数组是否包含给定值的 Java 程序
在本程序中,您将学习在 Java 中检查数组是否包含给定值。
要理解此示例,您应该具备以下 Java 编程的知识:
示例 1:检查 Int Array 是否包含给定值
public 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
中的整数数组.
现在,我们使用for-each 循环遍历所有元素数量 并单独检查 toFind
是否等于 n
。
如果是,我们设置 found
为 true
并中断循环。如果没有,我们将进行下一次迭代。
示例 2:使用 Stream 检查数组是否包含给定值
import java.util.stream.IntStream;
public 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()
方法是一个采用谓词、表达式并返回布尔值的函数。在我们的例子中,谓词比较在流中的每个元素 n
是否等于 toFind
并返回 true
或 false
。
如果任何一个元素 n
返回 true
, found
设置为 true
。
示例 3:检查数组是否包含非原始类型的给定值
import java.util.Arrays;
public 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
, 并使用 Arrays
的 stream()
方法首先将其转换为流并使用 anyMatch()
检查数组是否包含给定值.