java - 检查数组中是否存在元素

标签 java

一个简单的Java代码,用于检查一个元素是否存在于数组中:

import java.util.Arrays;

public class Main {
    static int[] numbers = {813, 907, 908, 909, 910};

    public static void main(String[] args) {
        int number = 907;
        //Integer number = 907; // the same thing -- it's not found.
        boolean b = Arrays.asList(numbers).contains(number);
        System.out.println(b);  // => false
    }
}

1)为什么在数组中找不到907?

2) 如果有更好的方法,请继续分享您的知识。

更新:

据说asList转换你的 int[]进入List<int[]>只有一个成员:原始列表。然而,我希望下面的代码给我 1,但它给了我 5:

System.out.println(Arrays.asList(numbers).size());

最佳答案

问题是 Arrays.asList(numbers)没有按照你的想法去做。它正在转换您的 int[]进入List<int[]>只有一个成员:原始列表。

您可以进行简单的线性搜索,或者,如果您的 numbers数组总是排序的,使用 Arrays.binarySearch(numbers, 907);并测试结果是否为负(即未找到)。

关于java - 检查数组中是否存在元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17510664/

相关文章:

java - 您应该将扩展 Application 的类放置在 jax.rs 中的何处

java - JPA 读取但不写入/更新属性

java - 简单的 Autowiring ="byName"不起作用

java - 为什么 UnixSystem().getUsername() 返回 null(Docker 中的 OpenJDK 17)

java - 如何在链接表上设置hibernate生成的外键约束名称?

java - JSP获取上传文件的名称

java - 用于生成字母数字字符串的 RandomStringGenerator

Java 1.8 边框渲染不正确

java - 使用默认反序列化器的一些功能在 gson 中实现自定义反序列化器

java - 如何在具有工厂方法的 spring MVC Controller 中进行集成测试?