在第一次迭代 - 我想从0..10创建一个随机数
这就是我实施它的方式 -
int generator= (int)(Math.random() * (10));
Run Code Online (Sandbox Code Playgroud)
在第一次迭代中,我想创建另一个随机数,但没有其中一个值.例如,我想要没有数字4的随机数.只有1,2,3,5,6,7,8,9,0
当生成随机数时,如何从数字0..10中删除其中一个值?
您还可以保留List
所有数字.然后使用Collections.shuffle
shuffle列表并获取第一个元素.并删除它.
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(4);
list.add(2);
list.add(3);
System.out.println("Original List: " + list);
Collections.shuffle(list);
System.out.println("Shuffled List: " + list);
int number1 = list.remove(0); // Remove the first value
System.out.println("Number removed: " + number1);
Collections.shuffle(list);
System.out.println("Shuffled List: " + list);
number1 = list.remove(0);
System.out.println("Number removed: " + number1);
Run Code Online (Sandbox Code Playgroud)
输出: -
Original List: [1, 4, 2, 3]
Shuffled List: [4, 3, 1, 2]
Number removed: 4
Shuffled List: [1, 3, 2]
Number removed: 1
Run Code Online (Sandbox Code Playgroud)
更好的办法是从生成随机数0
的size
列表,并获得价值that index
并将其取出.
int size = list.size();
Random random = new Random();
for (int i = 0; i < size; i++) {
int index = random.nextInt(list.size());
int number1 = list.remove(index);
System.out.println(number1);
}
Run Code Online (Sandbox Code Playgroud)
注意: -
如果要从生成中排除一组固定的数字,则可以在列表中包含这些数字.然后从您的列表中删除该列表的所有元素list of numbers
.然后使用上述任何方法.