如何从java </double []>中的ArrayList <double []>获取double类型的随机数组

时间:2015-03-11 10:18:02

标签: java

我已经声明了一个ArrayList<Double[]>类型的变量。我希望从这里得到随机双阵列k次。请帮助我。谢谢。

这是declearation:ArrayList<Double[]> vecspace = new ArrayList<double[]>();从这里我需要逐个访问数组(而不是数字)。如果不可能,请告诉我声明“vecspace”获取随机数组的其他方法。

3 个答案:

答案 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;价值(并非真正随机,如PseudorandomnessPseudorandom 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)));
}