間隔からランダムな一意の整数を生成したいのですが、アプリがフリーズします(無限ループ)。
int[] ids = new int[200];
for(int i = 0; i < ids.length; i++){
int temp = getUnique(ids);
ids[i] = temp;
}
private int getUnique(int[] ids){
while(true){
int iRand = random(0, ids.length);
if( unique( ids, iRand ) ) return iRand;
}
}
private boolean unique(int[] arr, int i){
for(int k : arr){
if(k == i) return false;
}
return true;
}
private int random(int Min, int Max){
return Min + (int)(Math.random() * ((Max - Min) + 1));
}
0から200までの整数の配列をランダムにソートしたいと思います。理由はわかりませんが、アプリケーションがフリーズしています。なんで?問題はどこだ?