2015-04-02 181 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