0

こんにちは、次のコード行があります

solution first = mylist.remove((int)(Math.random() * mylist));

これは私に次のようなエラーを与えます

The operator * is undefined for the argument type(s) double, ArrayList<solution>

arrayListの乱数をArrayListから削除しようとしています

どんな助けでも適用されるでしょう。

4

2 に答える 2

4

リストからランダムな要素を削除しようとしているようです。すべての要素をランダム インデックスでカバーするには、リスト サイズが必要です。

数値に を掛けても意味がありませんArrayList。コードでリストだけを直接指定しても、リストのサイズを取得することはできません。size()リストのメソッドを呼び出します。intこれは、乗算可能なan を返します。

于 2013-03-04T18:15:21.490 に答える
0

リストサイズの範囲内で乱数を見つける必要があります

final Random random = new Random();

mylist.remove(random.nextInt(myList.size()));

を作成しRandomて保存してください。そうしないと、同じ数が繰り返し作成される可能性があります (疑似乱数にすぎません)。

また、nextIntメソッドは上限を除外するためmylist.size()、無効なインデックスは返されません。

于 2013-03-04T18:24:42.650 に答える