从列表中随机化

时间:2016-09-18 22:41:14

标签: java random

ArrayList<String> listArray = new ArrayList<String>();

private void AddToListActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String addTo = txtAdd.getText();
    listArray.add(addTo);
}                                        

private void randomPickerActionPerformed(java.awt.event.ActionEvent evt) {                                         

} 

在按钮randomPicker中,我想打印出我在数组中添加的随机字符串之一。你能帮我解决一下我应该在那个按钮里写的东西吗?

我试过了:

   String random = (listArray[new Random().nextInt(listArray.length)]);
    System.out.println(random);

它说我无法使用nextInt

3 个答案:

答案 0 :(得分:1)

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

您正在使用数组的语法,而您的listArray实际上是ArrayList(您正在做其他地方list.add(),这就是我猜的方式)。您需要调用ArrayList的get方法,如下所示:

String random = listArray.get(new Random().nextInt(listArray.size()));

注意size()方法,length属性仅适用于数组。

答案 1 :(得分:0)

你可以这样做

Random ran = new Random();
String random = (String) list.get(ran.nextInt(list.size()));
System.out.println("random :"+rdom);

答案 2 :(得分:0)

这取决于你想要的东西。但是,通常有两件事。您可以使用课程RandomArrayList中选择随机索引。

或者您可以使用集合java.util.Collections.shuffle()方法。

public static void shuffle(List<?> list)

随机播放整个列表。

Random random = new Random();
int index = random.nextInt(listArray.size());
String random = listArray.get(index);

我的猜测是你来自c ++。 java中的ArrayLists由实际数组支持。但是,它们无法访问。你不要在它们上面调用.length,但是.size()

相关问题