我已经声明了一个ArrayList<Double[]>
类型的变量。我希望从这里得到随机双阵列k次。请帮助我。谢谢。
这是declearation:ArrayList<Double[]> vecspace = new ArrayList<double[]>();
从这里我需要逐个访问数组(而不是数字)。如果不可能,请告诉我声明“vecspace”获取随机数组的其他方法。
答案 0 :(得分:0)
通过使用RandomList和ArrayList的get方法,您可以实现这样的目标
首先,我会编写一个方法,允许我以随机的方式获取0和ArrayList大小之间的整数
在类级
声明一个Random实例为final final Random random = new Random(0)
// Call this with n = your ArrayList.size()
public static int integerBetweenZeroAnd (int n) {
return random.nextInt(n);
}
如果我有
ArrayList<Double[]> myArrayList = new ArrayList<Double[]>();
从此致电:
Double[] randomlyPickedArray = myArrayList.get(integerBetweenZeroAnd(myArrayList.size()));
答案 1 :(得分:0)
您可以使用Collections.shuffle()
方法有效地随机化ArrayList中的Double数组,然后使用get()
从列表中获取第一个数组,如下所示:
Collections.shuffle(vecspace);
Double[] randomArray = vecspace.get(0);
答案 2 :(得分:0)
生成&#34;随机&#34;价值(并非真正随机,如Pseudorandomness和Pseudorandom Number Generator中所述)您必须java.util.Random
使用values of a specific range or
java.lang.Math.random()for
Double `s的值介于0.0和1.0之间。
java.lang.Random
Random randGen = new Random()
for(int i=0; i<k; i++) {
int randomIndex = randGen.nextInt(array.size() -1); // generates a random value between 0 and (size of array - 1)
Double[] randomSelected = array.get(randomIndex);
}
java.lang.Math.random()
for(int i=0; i<k; i++){
Double[] random = array.get((int)(java.lang.Math.random * (array.size() -1)));
}