迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中检查数组是否包含特定值

作者:迹忆客 最近更新:2023/09/17 浏览次数:

数组是按一定顺序排列的元素的系统集合。在内部,数组元素存储在连续的内存位置。

有多种方法可以搜索数组中的元素。不同的方法导致不同的时间和复杂性。下面列出了几种在数组中搜索元素的方法。


使用 Java 中的 array.contains() 方法检查数组是否包含特定值

在下面的代码块中,我们需要用一些预定义的值实例化一个数组 arr。现在,初始化我们要搜索的字符串。

Arrays 是一个具有各种操作数组方法的类。此类包含静态工厂方法和字段,它们在搜索和排序数组中的元素时非常有用。

asList() 方法是 Arrays 类的静态方法。它返回从参数中获取的指定数组的固定列表。

contains()List 接口中的一个方法。它接受一个元素作为参数,我们将这个参数与列表中存在的元素进行比较。如果指定的元素存在于列表中,则返回布尔值 true,在任何一种情况下都返回 false。如果指定元素的类型与此列表不兼容,则该方法抛出 ClassCastException;如果指定值为 null 且此列表不允许空值,则该方法抛出 NullPointerException

package findInList;

import java.util.Arrays;

public class FindAValueInArray {
    public static void main(String[] args) {
        String[] arr = new String[]{"1", "2", "3"};
        String stringToSearch = "2";
        System.out.println(Arrays.asList(arr).contains(stringToSearch));
    }
}

上述程序的输出如下。

true

使用 Java 8 流检查数组包含特定值

在上面的代码块中,前两行与第一个代码中的类似。这里我们使用了 Arrays 类的 stream 方法来创建数组流。此方法返回一个以指定数组为源的顺序流。Stream 类有一个名为 anyMatch() 的函数。该方法将谓词作为其输入。

Predicate 是一个函数式接口,它接受一个参数函数并返回一个 Boolean 值。它包含一个 test(T t) 方法,用于评估给定参数的谓词。如果流的任何元素与提供的谓词匹配,则返回 true,否则返回 false 值。

package findInList;

import java.util.Arrays;

public class FindAValueInArray {
    public static void main(String[] args) {
        String[] arr = new String[]{"1", "2", "3"};
        String stringToSearch = "2";
        System.out.println(Arrays.stream(arr).anyMatch(s -> s.equals(stringToSearch)));
    }
}

上述代码的输出与第一个代码相同。


使用简单的 for 循环检查数组是否包含特定值

在下面的代码块中,我们使用传统的 for 循环来迭代数组。for 循环在 expression1 中初始化,计数器值为 0。现在将计数器值与数组的长度进行比较。如果计数器变量小于定义数组的长度,则代码块内的语句将被执行。

for 块内,我们使用 String 类的 equals 方法比较数组的每个元素。如果状态评估为真,则使用 break 关键字来中断 for 循环的执行。如果没有找到,代码将被执行与数组中元素数量一样多的次数。

在循环之后,如果在列表中搜索到元素,则打印语句会将状态变量的值评估为,否则将打印 false 值。

package findInList;

public class FindAValueInArray {
    public static void main(String[] args) {
        String[] arr = new String[]{"1", "2", "3"};
        String stringToSearch = "2";
        boolean status = false;
        for (int i = 0; i < arr.length; i++) {
            status = arr[i].equals(stringToSearch);
            if (status) break;
        }
        System.out.println(status);
    }
}

输出结果也与第一段代码中给出的相同。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Java 中延迟几秒钟的时间

发布时间:2023/12/17 浏览次数:217 分类:Java

本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。

如何在 Java 中把 Hashmap 转换为 JSON 对象

发布时间:2023/12/17 浏览次数:187 分类:Java

它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。

如何在 Java 中按值排序 Map

发布时间:2023/12/17 浏览次数:171 分类:Java

本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map 进行排序,并列出了一些示例代码来理解它。

如何在 Java 中打印 HashMap

发布时间:2023/12/17 浏览次数:192 分类:Java

本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。

在 Java 中更新 Hashmap 的值

发布时间:2023/12/17 浏览次数:146 分类:Java

本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。

Java 中的 hashmap 和 map 之间的区别

发布时间:2023/12/17 浏览次数:79 分类:Java

本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,

在 Java 中获取用户主目录

发布时间:2023/12/17 浏览次数:218 分类:Java

这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。

Java 中 size 和 length 的区别

发布时间:2023/12/17 浏览次数:179 分类:Java

这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。

Java 中的互斥锁

发布时间:2023/12/17 浏览次数:111 分类:Java

了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便