作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建一个彩票程序,我想检查以前的中奖号码(数组内)中是否已经存在一个号码。所以我正在尝试这个
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[]
.
您可以声明winningNumbers
为 Integer
的数组s,以便数组将按照您的预期进行解释,并且您会收到 List<Integer>
后退。你自己的findIfExist
该方法也很有效。
关于java - Arrays.asList(an_array).contains(an_integer) 总是 false。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21197930/
这个问题已经有答案了: Why does Arrays.asList on an int[] return a List, and not a List? (3 个回答) Arrays.asList(
我是一名优秀的程序员,十分优秀!