Java 20个数字的列表,每个数字生成1-100,如何不重复?
我已经看过很多其他人了,我仍然不知道如何在下面的代码中输入不重复的代码。这里的新手,需要有人解释Java 20个数字的列表,每个数字生成1-100,如何不重复?,java,Java,我已经看过很多其他人了,我仍然不知道如何在下面的代码中输入不重复的代码。这里的新手,需要有人解释 import java.util.Random; class random{ public static void main(String[] args) { Random dice = new Random(); int number; for (int counter = 1; counter <= 20; counter++) { number
import java.util.Random;
class random{
public static void main(String[] args) {
Random dice = new Random();
int number;
for (int counter = 1; counter <= 20; counter++) {
number = 1 + dice.nextInt(100);
System.out.println(number + " ");
}
}
import java.util.Random;
类随机{
公共静态void main(字符串[]args){
随机骰子=新随机();
整数;
for(int counter=1;counter不只是打印随机数,而是有一个集合(只允许唯一元素)来捕获数字,并有一个if条件来检查集合的长度(set.size()=20)退出循环,然后运行for循环以查找随机数。我认为这将解决您的问题。首先将随机数添加到一个集合中,这将停止重复条目。然后循环并打印出集合。有几种不同的方法可以做到这一点,但这里有一种方法可以让您的c更改最少颂歌:
Set<Integer> numbers = new HashSet<Integer>();
Random dice = new Random();
int number;
for (int counter = 1; counter <= 20;) {
number = 1 + dice.nextInt(100);
if(numbers.add(number)) { //Only increment the counter if the number wasn't already in the set
counter++;
}
}
for(Integer num : numbers) {
System.out.println(num + " ");
}
Set number=new HashSet();
随机骰子=新随机();
整数;
对于(int counter=1;counter跟踪以前生成的内容。请尝试以下操作
public static void main(String...args) {
Random dice = new Random();
Set<Integer> previouslyGenerated = new HashSet<Integer>();
int number = 0,counter = 0;
while (counter <20){
number = 1+dice.nextInt(100);
if (!previouslyGenerated.contains(number)){
previouslyGenerated.add(number);
System.out.println(number + " ");
counter++;
}
}
}
publicstaticvoidmain(字符串…参数){
随机骰子=新随机();
Set previouslyGenerated=新HashSet();
整数=0,计数器=0;
而(计数器比MrMadsen建议的简单一点的方法是控制设置的大小:
Set<Integer> numbers = new LinkedHashSet<>();
Random dice = new Random();
while(numbers.size() < 20)
numbers.add(dice.nextInt(100)+1);
for(Integer num : numbers) {
System.out.println(num + " ");
}
您好,欢迎来到StackOverFlow(SO)。请花一分钟的时间阅读,并根据本文中提到的规范编辑您当前的帖子。谢谢,编码愉快。开始很好,但if number=counter;行不是Java。您能在帖子中添加一个“other”的示例吗你看了一些你不理解的例子?如果我们看到你试图添加的内容和你的实际尝试,这将对我们有很大帮助。事实上,很难对你在这里发布的内容给出好的建议。将生成的数字添加到列表中。一旦使用随机生成器生成,如果该数字已经存在,则生成另一个r数字。继续这样做,直到生成一个不存在的数字。然后继续生成下一个数字。这听起来很复杂,但您会惊讶地发现,使用Random.nextInt()重复的可能性会降低。的可能重复
new Random().ints(1, 101).distinct().limit(20).forEach(System.out::println);