【发布时间】:2019-11-27 14:24:42
【问题描述】:
我生成了一个包含 20 个介于 1 到 300 之间的唯一随机数的列表,并将其用于我需要的用途。但是,我还需要将未进入列表的数字添加到另一个列表中,以便在另一个函数中使用。
这是我用来生成 20 个数字的随机列表的代码:
JToggleButton[][] p = new JToggleButton[5][4];
ArrayList<Integer> list = new ArrayList<Integer>();
Random rand = new Random();
for (int i = 0; i < p.length; i++) {
for (int j = 0; j < p[i].length; j++) {
int randomNum = rand.nextInt((300 - 1) + 1) + 1;
while (list.contains(randomNum)) {
randomNum = rand.nextInt((300 - 1) + 1) + 1;
}
list.add(randomNum);
// rest of code that I need the random number list for
我需要将这 20 个项目列表中未包含的其他 280 个数字放入另一个列表中,但我不确定如何实际获取这些“未使用”的数字
【问题讨论】:
-
rand.nextInt((300 - 1) + 1) + 1 有点奇怪
-
@user8426627 你能告诉我为什么吗?
-
@user8426627 它实际上是指
rand.nextInt((upperLimit - lowerLimit) + 1) + lowerLimit,这是有道理的,只是看起来很奇怪,因为所有东西都是1并且没有变量。 -
IntStream.rangeClosed(1, 300).filter(item -> !list.contains(item)).boxed().collect(Collectors.toList());?