2012-11-22 74 views
1

我有以下代碼:創建隨機陣列的方法

import java.util.*; 

public class Lab7 { 

/** 
* @param args 
*/ 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    double[][] g = { { 0, 1, 2 }, { 1, 0, 3 }, { 2, 3, 0 } }; 
    double mst[][] = MST.PrimsMST(g); 
    PrintArray(g);                  
    PrintMST(mst); 
} 

public static void PrintArray(double[][] g) { 

    System.out.println(Arrays.deepToString(g)); 

} 

public static void PrintMST(double[][] mst) { 

    System.out.println(Arrays.deepToString(mst)); 

} 

} 

我真的需要幫助,在加入RandomArray方法會爲我(G)創建一個隨機排列,而不是我不必輸入值我自己的多維陣列。

這裏有一張我以前用來創建一個隨機陣列碼:

我似乎卻無法修改它在上面的代碼中使用,任何人都可以幫我嗎?

public static ArrayList<Integer> RandomArray(int n) {     // Method called RandomArray which takes a  parameter as an integer 
    ArrayList<Integer> randomArray = new ArrayList<Integer>(n);   // Creates an ArrayList called randomArray, of size 'n' 
    Random randNumGenerator = new Random();        // Creates a random object 
    for (int i = 0; i < n; i++){          // Creates a for loop which goes from i=0 to 'n' 
     randomArray.add(new Integer(randNumGenerator.nextInt(256))); // Will add a random int from 0 to 255, in the array 'randomArray' 
    } 
    return randomArray;             // Returns randomArray 
} 
+3

事實上,你不能在你原來的代碼中使用它。因爲你生成了一個ArrayList,而你需要一個數組數組。 –

+0

你可以使用'ArrayList >',它爲每一行使用舊的RandomArray。 –

+1

這個問題可能以一種或另一種形式每週約兩次提出。如果您所使用的版本不適合您,請找到另一個版本。 –

回答

1

改變了你的方法,以滿足您的需求:

public static double[] randomArray(int n) { 
    double[] randomArray = new double[n]; 
    Random randNumGenerator = new Random(); 
    for (int i = 0; i < n; i++) { 
     randomArray[i] = randNumGenerator.nextDouble() * 256; 
    } 
    return randomArray; 
} 

現在你可以把它像

double[][] g = {randomArray(3), randomArray(3), randomArray(3)}; 
+0

它不一定是'double';你也可以將它們投射到「int」。 – Makoto

+0

正是我需要的,謝謝! – user1781115