在Java中查找数组中是否存在数字

在Java中查找数组中是否存在数字,java,Java,我有一组帐号。我从用户那里获取输入,并尝试查看数组中是否存在输入。我一直在尝试一个在参数中带有for循环的if语句,但我觉得这太过分了。我遗漏了什么吗?最简单的方法是将数组转换为列表并使用contains方法,如下所示: Long[] account_numbers = new Long[SIZE];//Your existing array //get the list from array List<Long> accountNumbers = Arra

我有一组帐号。我从用户那里获取输入,并尝试查看数组中是否存在输入。我一直在尝试一个在参数中带有for循环的if语句,但我觉得这太过分了。我遗漏了什么吗?

最简单的方法是将数组转换为列表并使用contains方法,如下所示:

    Long[] account_numbers = new Long[SIZE];//Your existing array

    //get the list from array
    List<Long> accountNumbers = Arrays.asList(account_numbers);

    //check the desired account exist or not
    Long accountToSearch= new Long("12345");
    if(accountNumbers.contains(accountToSearch)){
        //account exist
    }

如果仍希望在不使用列表的情况下遍历数组,可以使用for循环的以下基本结构:

boolean validInput = false;
for (int i = 0; i < account_numbers.length; i++) {
    if (account_numbers[i] == userInput) {
        validInput = true;
        break;
    }
}

您可以使用Arrays实用程序类及其简单的二进制搜索算法:

Arrays.sort(array);  // must sort before next line
boolean found = Arrays.binarySearch(array, someValue) > -1;

哦-我对我的问题没有任何评论?必须在StackOverflow.com上使用for循环在我看来并不是一个过分的方法,您也可以使用集合,例如ArrayList和使用contains方法,但我认为它必须在内部应用一个循环,但这会使代码更简单、更紧凑。这里有一个类似的问题:您真的认为有没有一种方法可以在不遍历的情况下识别数组中是否存在数字。。。你所能做的就是缩短语法,但工作永远是一样的!!!更疯狂的事情发生了。Arrays.asList…包含。。。作品我从来没有写过遍历数组的代码。只是它显然对int不起作用。嗯。。。我不知道名单。太棒了。谢谢,虽然这确实是一件非常值得做的事情。。。在浪费时间复制数组和创建对象之后,它在内部要做的只是一个简单的线性搜索,而简单的for循环可以解决这个问题。当然,如果您打算使用数组。
    Integer arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    int a = 7;
    boolean isThere = false;
    List<E> list = new ArrayList<>();
    list.addAll((Collection<? extends E>) Arrays.asList(arr));
              // enter array into the list
    if (list.contains(a)) {
        isThere = true;
    }

    System.out.println(isThere);