在 Java 中检查数组是否包含特定值
数组是按一定顺序排列的元素的系统集合。在内部,数组元素存储在连续的内存位置。
有多种方法可以搜索数组中的元素。不同的方法导致不同的时间和复杂性。下面列出了几种在数组中搜索元素的方法。
使用 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);
}
}
输出结果也与第一段代码中给出的相同。
相关文章
如何在 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 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,