用java.util.Random類別中的nextInt(n)方法,可以亂數產生0~(<n)的數字,但不保證不重複,所以就想一個產生一個list決不會有數字重複問題,方法很有多,我這個方法應該不聰明才是....
package random;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class VerCode{
Random rd = new Random(); //產生Random物件
List<Integer> al=new ArrayList<>();
public void genCode() {
// TODO Auto-generated method stub
while(al.size()<=10){ //總共10個數字
int n=rd.nextInt(10); //產生0~9數字
if(al.contains(n))
continue; //重複的不加入
else
al.add(n);
System.out.println(n);
}
}
}
我的作法是先產生0~9放到陣列
接下來隨機選0~9
如果選到3就把最後一個數字移到陣列3的位置上
所以變成0 1 2 9 4 5 6 7 8
接下來減少隨機數字的範圍0~8
可以保證只要跑10次 不會有重複的情況