好吧,目標是每行/每行產生6個隨機數。有x行(由用戶通過UserInput設置)。每行必須有唯一的編號(非重複的編號)。我很確定這些數字是獨一無二的,但我似乎無法讓它有多行,而且我無法弄清楚我的生活是什麼部分阻止了多行。爲什麼這不會創建多組隨機數?
package rtg;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class Array {
public static void main(String[] args) {
String name;
int noTickets;
int[] numbers = new int[6];
Set<Integer> randomNumbers = new HashSet<>();
Random rand = new Random();
int ticketCount = 1;
System.out.println("Please input your name");
name = UserInput.readString();
System.out.println("Please input the number of tickets you want");
noTickets = UserInput.readInt();
System.out.println("___________________________________________\n___________________________________________");
System.out.println("___________________________________________\n___________________________________________");
System.out.println("Name: " +name+ "\nNumber of Tickets: " +noTickets+ "\nNumbers: ");
for (ticketCount = 1; ticketCount <= noTickets; ++ticketCount){
while (randomNumbers.size() < 6) {
randomNumbers.add(rand.nextInt(50) + 1);
}
int i = 0;
for (Integer n : randomNumbers) {
numbers[i++] = n;
}
System.out.print(Arrays.toString(numbers) + "\n");
}
}
}
編輯謝謝大家很多,我終於到了那裏,原來我把陣列在錯誤的地方(這是外面的for循環,從而只取得1組隨機數)現在修復它。下一個challange;有一個比較程序來掃描90多套6個唯一編號,並比較它們中的任何一個是否匹配不同的集合(每行/集> <)
非常感謝。我認爲這已經排序(我會做更多的檢查,但目前爲止沒有重複)。只是一個快速的請求,是否有可能解釋Set和HashSet實際上做了什麼? (我想知道以供將來參考:) 此外,稍有不同的問題,但相關的,如果我手動輸入一系列的6個數字(多行也),這將有可能使用此方法,檢查是否有任何號碼與另一個列表匹配(IE我把10,9,8,7,6,5放在一行上,1,2,3,4,5,6放在另一行上,並且想要檢查是否有任何數字匹配10,4,30,12 ,41,9等?) –
NeoKuro
Erm ...沒有工作。我在哪裏將這段代碼放在了興趣之外(我已經將它定位在字符串變量'name'的頂部) – NeoKuro
@Josh - 什麼都不起作用? (您可以編輯您的問題,並在原始帖子下面張貼修改過的代碼,如果這是解釋仍然存在問題的必要條件)。關於您的第二個問題 - 我建議將其作爲新問題發佈。 –