从列表中随机抽取

Randomize from a made list

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

你可以这样做

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

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 属性 仅适用于数组。

这在一定程度上取决于您想要这些东西的用途。但是,通常有两件事。您可以使用 class 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()