gpt4 book ai didi

java - 生成一个数字并检查它是否已经在 ArrayList 中

转载 作者:行者123 更新时间:2023-11-29 06:32:25 26 4
gpt4 key购买 nike

我想生成 10 个随机数。但是在我向 ArrayList 添加一个数字之前,我需要检查我的 Arraylist 是否已经包含一个介于 randomNumber - 50randomNumber + 50 之间的数字。

例如,如果随机数是120:
120-50=70
120+50=170

如果 ArrayList 包含 70 到 170 之间的数字,我不会将它添加到我的 ArrayList 并再次运行循环...

我的代码有什么问题?

package ee.tlu;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Testing {
public Testing() {
List < Integer > numbers = new ArrayList < > ();
Random rand = new Random();
int number = rand.nextInt(5000);
int n = 0;
boolean listis = false;
numbers.add(number);
while (n < 10) {
number = rand.nextInt(5000);
for (int k = number - 50; k < number + 50; k++) {
if (numbers.contains(k)) {
listis = true;
break;
}
}
if (!listis) {
numbers.add(number);
n += 1;
}
}
System.out.println(numbers);
}
public static void main(String[] args) {
new Testing();
}
}

最佳答案

你声明listis在开始 while 循环之前。一旦设置为 true,它就永远不会重置。将其移动到循环内。

此外,您永远不会检查 number + 50因为你有 <而不是 <=在你的 for 循环中。

while (n < 10) {
boolean listis = false;
number = rand.nextInt(5000);
for (int k = number - 50; k <= number + 50; k++) {
if (numbers.contains(k)) {
listis = true;
break;
}
}
if (!listis) {
numbers.add(number);
n += 1;
}
}

关于java - 生成一个数字并检查它是否已经在 ArrayList 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29848531/

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