2015-04-02 111 views
-2

有人告訴我什麼是錯的。我想用兩個帶有自由度數字的動態數組來生成一個Arraylist。例如,我想打印一個7行5列的矩陣。而且我也不會在我的矩陣中有重複。用兩個隨機數組打印Arraylist

ArrayList<int[]> lottoraws= new ArrayList<int[]>(); 

    int[] a = new int[5]; 
    int[] b = new int[7]; 

    for (int i = 0; i < 7; i++) { 
     int rand = (int) (Math.random() * 35 + 1); 
     b[i] = rand; 

     for (int j = 0; j < 5; j++) { 
      int rand2 = (int) (Math.random() * 35 + 1); 
      a[j] = rand2; 
    } 
    } 
    lottoraws.add(a); 
    lottoraws.add(b); 

    System.out.println("The players row: \n" + Arrays.toString(lottoraws.get(0))); 
+0

擴大您的代碼。我猜,它不是滿的。什麼是「lottoraws」? – LLAlive 2015-04-02 15:11:28

+0

Ops,對不起,lottoraws是Arraylist – Johan 2015-04-02 15:14:58

+0

我們如何判斷出了什麼問題?你的代碼沒有什麼問題。但顯然它不會產生矩陣。 – Manu 2015-04-02 15:17:07

回答

0

這樣的事情?

int[][] a = new int[7][5]; 
    for (int i = 0; i < a.length; i++) { 
     for(int j = 0; j < a[0].length ; j++){ 
      a[i][j] = (int) (Math.random() * 35 + 1); 
     } 
    } 
+0

謝謝,但實際上沒有。我需要使用ArrayList,因爲用戶將選擇行和列的大小。也許有可能使用你的方法,但我想學習如何用arrayLists做到這一點。 – Johan 2015-04-02 15:38:35

0

請在下面嘗試,您可以根據需要更改隨機方案。

ArrayList<int[]> lottoraws = new ArrayList<int[]>(); 
    int[] a = {}; 

    Random random = new Random(); 
    for (int i = 0; i < 7; i++) { 

     a = new int[5]; 

     for (int j = 0; j < 5; j++) { 
      int rand2 = (int) (random.nextInt(200)); 
      a[j] = rand2; 
     } 
     lottoraws.add(a); 
    } 

    for(int k=0; k< lottoraws.size(); k++){ 
     System.out.println(Arrays.toString(lottoraws.get(k))); 
    } 
} 
+0

太棒了,你解決了我的問題:) Thnks – Johan 2015-04-02 16:06:50