web-dev-qa-db-ja.com

文字列配列からのランダム要素

文字列配列があります:

String[] fruits = {"Apple","Mango","Peach","Banana","Orange","Grapes","Watermelon","Tomato"};

そして、私はこれからランダムな要素を取得しています:

String random = (fruits[new Random().nextInt(fruits.length)]);

今、私はランダムなフルーツを得るためにボタンを押すと、Appleが存在する番号を取得したい。番号は3

要素を取得しましたが、要素番号の取得に問題がありますので、手伝ってください

29
user1817558

生成されたインデックスを変数に保存してから、この変数を使用して配列にアクセスします。

int idx = new Random().nextInt(fruits.length);
String random = (fruits[idx]);

追伸私は通常、Randoizationごとに新しいRandomオブジェクトを生成するのは好きではありません。プログラムで単一のRandomを使用することを好み、それを再利用します。後でプログラムのバグを見つけた場合、問題のあるシーケンスを簡単に再現できます。

このアプローチによると、変数Random rどこかに、私はちょうど使用します:

int idx = r.nextInt(fruits.length)

ただし、アプローチも問題ありませんが、後で必要になる場合は特定のシーケンスを再現するのに苦労するかもしれません。

67
amit