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