从列表中随机抽取
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 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 中的 ArrayLists 由实际数组支持。但是,它们不可访问。您不对它们调用 .length,而是调用 .size()
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 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 中的 ArrayLists 由实际数组支持。但是,它们不可访问。您不对它们调用 .length,而是调用 .size()