我在cs 2010班。以前从未从事过编码或类似工作。我有一个很好的老师,但他的口音很浓,很难听懂。他最近给了我们一个项目,要在几天内完成。我在完成项目的最后一部分时遇到了问题。
该项目要求您生成 0-9999 之间的 10,000 个随机数,并将它们排列在 10,000 个数字的数组中,而不重复任何一个。如您所见,这基本上是要求您让数组按照从小到大的顺序将数字 0-9999 放入一个数组中。我的问题是不重复的数字。我已经在代码上工作了 4 个多小时,试图弄清楚如何使它不重复并且没有运气。我在网上搜索了至少一个小时,所有其他提示或解决方案都没有帮助。这是我到目前为止的代码,有人可以帮我吗?
package array.sorter.project;
import java.util.Arrays;
import java.util.Random;
public class Sorting {
public static void main(String args[]){
int[] randomNumbers = new int[10000];
Random rand = new Random();{
for (int i = 1; i < randomNumbers.length; i++) {
int n = rand.nextInt(10000);
randomNumbers[i] = n;}
for (int i = 0; i < randomNumbers.length; i++) {
int smallestNo = randomNumbers[i];
int posWithSmallest = i;
for (int j = i+1; j < randomNumbers.length; j++) {
int val = randomNumbers[j];
if (val < smallestNo) {
smallestNo = val;
posWithSmallest = j;
}
}
int tmp = randomNumbers[i];
randomNumbers[i] = smallestNo;
randomNumbers[posWithSmallest] = tmp;
}
Arrays.sort(randomNumbers);
for (int i = 0; i < randomNumbers.length; i++) {
System.out.println("Position " + i + " : " + randomNumbers[i]);
}
}
}
}