[英]2D array how to avoid the same numbers
晚上好,我想用不同的數字填寫一個五×五的表我不希望每列都有相同的數字我應該有限制,屬於某個限制,我能夠做但不知道如何避免不超過一次表中的數字
int num;
int [][] array = new int [5][5];
Random r = new Random();
for (int row = 0; row < array.length; row++) {
for (int col = 0; col < array[row].length; col++) {
if(row == 0){
num =r.nextInt(15);
array[row][col]=num;
}else if(row == 1){
num =r.nextInt(31-16)+16;
array[row][col]=num;
}else if(row == 2){
num =r.nextInt(45-31)+31;
array[row][col]=num;
}else if(row == 3){
num =r.nextInt(61-46)+46;
array[row][col]=num;
}else if(row == 4){
num =r.nextInt(75-61)+61;
array[row][col]=num;
}
}
}
對於每一行,創建一個包含它可以包含的整數的列表,然后將列表洗牌(使用Collections.shuffle()
),並保留5個第一個元素。
或者,如果您的目標是為整個表格提供不同的元素,請創建一個包含矩陣可以包含的所有整數的列表,然后隨機播放列表,遍歷列表以填充矩陣。
您可以擁有已經采用的數字的HashSet
。 添加到此並且不允許重復。 如果需要,使用toArray()
方法獲取數組對象。
如果你仍然想使用數組那么add()
方法HashMap
返回true
如果該值不當前集中存在,因此,如果true
再加入到表中,如果false
則沒有。
這允許您在不必隨機播放的情況下向表中添加元素,即如果您想要不斷更新表而不必在顯示之前等待完整集。
假設您只希望數字對於表而言是唯一的,而不僅僅是行位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.