繁体   English   中英

从制作的列表中随机化

[英]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

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

你可以这样做

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

这在一定程度上取决于您想要这些东西的用途。 但是,通常有两件事。 您可以使用Random类在ArrayList选择一个随机索引。

或者您可以使用集合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 中的 ArrayList 由实际数组支持。 但是,它们无法访问。 你不会对它们调用 .length,而是调用 .size()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM