我是菜鸟。我必须从一个包含字符串数组的arraylist中随机选择不同的元素。我尝试了几种不同的方法,但是每次都选择相同的数组。
public static void RandomSchedules(ArrayList<String[]> list)
{
Random randomizer = new Random();
for(int i=1; i<11; i++)
{
String[] random = list.get(new Random().nextInt(list.size()));
System.out.println("Random Schedule " + ":" + Arrays.toString(random));
}
}
我在上面的代码中也尝试过这个。
String[] random = list.get(randomizer.nextInt(list.size()));
但结果是一样的。
这是我从堆栈溢出尝试的另一种方法
public static List<String[]> pickNRandom(ArrayList<String[]> lst, int n) {
List<String[]> copy = new LinkedList<String[]>(lst);
Collections.shuffle(copy);
return copy.subList(0, n);
}
我将上述函数调用为,
List<String[]> randomPicks = pickNRandom(lst, 10);
有谁能指导我如何得到不同的元素吗。
1条答案
按热度按时间gc0ot86w1#
不使用随机化器对象,但每次在循环中创建一个新对象。因此,使用您创建的一个(避免每次新的随机调用)。尝试: