如何从 java 中的数组列表中随机选择一个项目?
How to pick a random item from a arraylist in java?
例如,如何从数组列表中的项目列表中随机选择一个项目;
ArrayList<Integer> mylist= new ArrayList<Integer>();
mylist.add(19);
mylist.add(154);
mylist.add(112);
mylist.add(15);
mylist.add(112);
目前,我正在这样做,但因为我需要一遍又一遍地使用它,有没有更短的方法来做到这一点?
Random random = new Random();
Integer randomInt = lista.get(rand.nextInt(lista.size()));
很简单,将代码放在这样的方法中
Random rand; // Global variable
public static int randomItem(Arraylist<Integer> mylist) {
rand = new Random();
Integer randomInt = lista.get(rand.nextInt(lista.size()));
return randomInt;
}
并在您的主要方法中这样调用它;
int selected = randomItem(mylist);
System.out.println(selected);
您可以创建一个从任何列表中随机选择项目的方法,如下所示:
static Random rand = new Random();
static <T> T getRandomItem(List<T> list) {
return list.get(rand.nextInt(list.size()));
}
每次需要随机数时都创建一个新的 Random
对象是一种不好的做法。这只会创建一个并重新使用它。
此外,您可以使用任何类型的列表来调用它 - 而不仅仅是 ArrayList<Integer>
s。
例如,如何从数组列表中的项目列表中随机选择一个项目;
ArrayList<Integer> mylist= new ArrayList<Integer>();
mylist.add(19);
mylist.add(154);
mylist.add(112);
mylist.add(15);
mylist.add(112);
目前,我正在这样做,但因为我需要一遍又一遍地使用它,有没有更短的方法来做到这一点?
Random random = new Random();
Integer randomInt = lista.get(rand.nextInt(lista.size()));
很简单,将代码放在这样的方法中
Random rand; // Global variable
public static int randomItem(Arraylist<Integer> mylist) {
rand = new Random();
Integer randomInt = lista.get(rand.nextInt(lista.size()));
return randomInt;
}
并在您的主要方法中这样调用它;
int selected = randomItem(mylist);
System.out.println(selected);
您可以创建一个从任何列表中随机选择项目的方法,如下所示:
static Random rand = new Random();
static <T> T getRandomItem(List<T> list) {
return list.get(rand.nextInt(list.size()));
}
每次需要随机数时都创建一个新的 Random
对象是一种不好的做法。这只会创建一个并重新使用它。
此外,您可以使用任何类型的列表来调用它 - 而不仅仅是 ArrayList<Integer>
s。