내 Android 앱에서 지정된 범위에서 두 개의 임의의 정수를 선택해야합니다. 아래의 코드는 작동하지만, 실제로는 무작위 정수를 선택하지는 않습니다. int를 뒤섞습니다. 그리고 저에게 버그가있는 점은 코드의 randomNum2= (int)it.next();
비트 때문에 max 값을 1보다 작게 지정해야한다는 것입니다. 올바른 번호 (현재 127)를 최대 값으로 입력하면 다음 반복으로 128을 찾고 있기 때문에 오류 java.util.NoSuchElementException
가 표시됩니다. 전에 내가 사용했다 rand = new Random(); randomNum1 = rand.nextInt(max - min + 1) + min; randomNum2 = rand.nextInt(max - min + 1) + min;
하지만 두 개의 무작위 ints가 끝날 수도 있습니다 문제가 있으며, 나는 그들이 고유해야합니다. 그래서 누구나 최소/최대 정수 범위에서 두 개의 난수를 얻는 더 좋은 방법을 제안 할 수 있습니까?Android가 지정된 범위에서 2 임의의 정수를 선택하십시오.
int min = 1;
int max = 126;
int randomNum1;
int randomNum2;
List<Integer> choicesL;
public void randomTwo() {
choicesL = new LinkedList<Integer>();
for (int i = min; i <= max; i++) {
choicesL.add(i);
}
Collections.shuffle(choicesL);
Iterator<Integer> it = choicesL.iterator();
while (it.hasNext())
{
randomNum1= (int)it.next();
randomNum2= (int)it.next();
}
}
이 감사에 더 많은 이론이 있다는 것을 supose : 당신은 당신의 코드를 개선하려면 어쩌면 당신은 확인하실 수 있습니다! while 문을 직접 추가해야한다고 생각했습니다. 너무 쉽습니다! – kirktoon1882