195*_*950 4 java arrays comparison
我得到了这个简单的代码,我想简化while循环中数组的比较
int[] numbers = new int[7];
Random rand = new Random();
for(int i = 0; i < 7; i++) {
int number = rand.nextInt(46);
while(number == numbers[0] || number == numbers[1] || number == numbers[2] || number == numbers[3] ||
number == numbers[4] || number == numbers[5] || number == numbers[6]) {
number = rand.nextInt();
}
numbers[i] = number;
}
for(int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
Run Code Online (Sandbox Code Playgroud)
我想找到一种简化这部分的方法:
while(number == numbers[0] || number == numbers[1] || number == numbers[2] || number == numbers[3] ||
number == numbers[4] || number == numbers[5] || number == numbers[6])
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
一个简单的解决方案是使用Java 8流.
使用流它看起来像这样:
int[] numbers = new Random().ints(1, 46).distinct().limit(6).toArray();
Run Code Online (Sandbox Code Playgroud)
感谢Elliot,我没有意识到这个数字0不会被选中,因为所有的一开始都是0.