字符串数组中的随机元素

30

我有一个字符串数组:

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

然后我通过以下方式从其中随机获取元素:

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

现在我想在点击随机水果按钮时获取苹果所在的编号,就像当我按下随机按钮时,它会给我香蕉..并且还应该给我元素编号是3

我已经得到了元素,但是在获取元素编号时遇到了问题,请帮助我解决


2
当你说元素编号时,你是指水果在数组中的索引吗? - omi0301
参见:如何从数组中随机选择一个元素 - Stephen Ostermiller
1个回答

68

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

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

顺便说一下,我通常不喜欢每次随机生成一个新的Random对象。我更喜欢在程序中使用一个单独的Random对象并重复使用它。这样可以让我轻松地重新创建出问题序列,以便在未来发现程序中的任何错误。

按照这种方法,我将在某个地方定义一个变量Random r,然后只需使用:

int idx = r.nextInt(fruits.length)

不过,你的方法也可以,但是如果以后需要再现特定的顺序,可能会很困难。


7
使用泛型,它会钻取到private static <T> T randomFrom(T... items) { return items[new Random().nextInt(items.length)]; } - Avinash R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接