gpt4 book ai didi

java - Arrays.asList(an_array).contains(an_integer) 总是 false。为什么?

转载 作者:行者123 更新时间:2023-12-01 23:16:01 25 4
gpt4 key购买 nike

我正在尝试构建一个彩票程序,我想检查以前的中奖号码(数组内)中是否已经存在一个号码。所以我正在尝试这个

int[] winningNumbers = new int[6]; //array holding 6 random numbers

for(i = 0; i < winningNumbers.length; i++ ){

int randomNums = new Random().nextInt(49) + 1;

while (Arrays.asList(winningNumbers).contains(randomNums)){
System.out.println(Arrays.asList(winningNumbers).contains(randomNums));//always false
randomNums = new Random().nextInt(49) + 1;
}
winningNumbers[i] = randomNums ;
System.out.println(winningNumbers[i]);
}

Arrays.asList(writingNumbers).contains(randomNums) 总是 false,无论数字是否存在,因此 while 循环从未被执行,所以我通过编写一个方法解决了它

public static boolean findIfExist(int a[], int x){
for (int i=0; i<a.length; i++){
if (a[i]==x){
return true;
}
}
return false;
}

我的问题是为什么 Arrays.asList(lookingNumbers).contains(randomNums) 总是错误的。我在这里做错了什么?

感谢您的宝贵时间。

最佳答案

问题在于 varargs 方法的解释 Arrays.asList 。它将类型解释为 int[] ,以便您收到 List<int[]> ,不是List<Integer> 。因此,您传入的数字都不等于 int[] .

您可以声明winningNumbersInteger 的数组s,以便数组将按照您的预期进行解释,并且您会收到 List<Integer>后退。你自己的findIfExist该方法也很有效。

关于java - Arrays.asList(an_array).contains(an_integer) 总是 false。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21197930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com