私は4つのアイテムのArrayListを持っています。私は1つのアイテムをランダムに削除し、更新されたArrayListを表示する必要があります。しかし、私のランダム配列リストの2番目と3番目の要素をターゲットにし続けます。限り、私のランダムがこのように数えると理解しています:0 1 2 3.それは私の4要素をカバーするのに十分なはずですか?同じインデックスを対象にしているのはなぜですか?私は乱数(4)+1を増やそうとしましたが、それは私を境界から外してしまいます。あなたのユーザー乱数生成は怒りがそのようなあなたの場合のように、配列の長さマイナス1に設定されているarrayListからランダムインデックスを削除します。
Random rand = new Random();
Scanner input = new Scanner(System.in);
int numberOfGuests = 4;
ArrayList<String> guestList = new ArrayList<>(4);
System.out.println("Enter 4 guests:");
for(int i = 1; i <=numberOfGuests; i++){
System.out.printf("guest%d: ", i);
guestList.add(input.nextLine());
}
System.out.println("Guest List: " + guestList);
String remove = guestList.remove(rand.nextInt(4));
System.out.printf("%s can't come%n" , remove);
System.out.println("Guest List: " + guestList);
あなたのコードでは、IntelliJので局部的に私のための作品です。 –
あなたのコードは私のために働く。私はあらかじめ定義された4人のゲストa、b、c、dを使ってコードを実行しました。私は10回それを実行していると、あなたはそれが動作することがわかります。リンクはここにあります:https://coderpad.io/FPNDM4CD – cullan
私は悪いことを知っています。私はすべての値を得るために15以上の異なる時間を走らなければならなかった、ランダムはちょうど私がそれを走らせた最初の5回のために同じ要素を選んでいたことが起こった。 – mrKapplan