📌  相关文章
📜  Java程序检查数组是否包含给定值

📅  最后修改于: 2020-09-26 17:43:24             🧑  作者: Mango

在该程序中,您将学习检查数组是否包含Java中的给定值。

示例1:检查Int数组是否包含给定值
public class Contains {

    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

如果是的话,我们设置发现 true从环和休息。如果不是,我们转到下一个迭代。


示例2:使用Stream检查数组是否包含给定值
import java.util.stream.IntStream;

public class Contains {

    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中的任何一个返回true ,则found也将设置为true


示例3:检查数组是否包含非原始类型的给定值
import java.util.Arrays;

public class Contains {

    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