字符串数组中的随机元素

use*_*558 29 java arrays string random android

我有一个字符串数组:

String[] fruits = {"Apple","Mango","Peach","Banana","Orange","Grapes","Watermelon","Tomato"};
Run Code Online (Sandbox Code Playgroud)

我从这里得到随机元素:

String random = (fruits[new Random().nextInt(fruits.length)]);
Run Code Online (Sandbox Code Playgroud)

现在我想得到苹果存在的数字,当我按下按钮得到随机水果,就像我按下randon按钮它给我香蕉..还应该给我的元素数量是 3

我得到了元素,但是获取元素编号有问题,所以请帮帮我

ami*_*mit 67

只需存储在变量中生成的索引,然后使用此变量访问该数组:

int idx = new Random().nextInt(fruits.length);
String random = (fruits[idx]);
Run Code Online (Sandbox Code Playgroud)

PS我通常不喜欢Random为每个randoization 生成新对象 - 我更喜欢Random在程序中使用单个- 并重新使用它.如果我稍后在程序中发现任何错误,它允许我轻松地重现有问题的序列.

根据这种方法,我将在Random r某处使用一些变量,我将使用:

int idx = r.nextInt(fruits.length)
Run Code Online (Sandbox Code Playgroud)

但是,您的方法也可以,但如果您以后需要,可能很难再现特定序列.

  • 使用泛型,它深入到'private static <T> T randomFrom(T ... items){return items [new Random().nextInt(items.length)]; }` (7认同)