Java中的数组和数组

时间:2013-06-25 12:55:12

标签: java arrays

如何在Java中将两个随机数量初始化为数组?我试过这个,但它已经给了我一大堆错误。在这个程序中,我想初始化数组的两个金额,帐户余额和帐号。

public class Bank {

    public static void main (String args []){

        int [] account;
        account = new int [100];

        for(int c = 1; c < 100; c++){
            int account[c] = {Math.random() * 1000  , Math.random() * 100};
        }

    }
}

4 个答案:

答案 0 :(得分:4)

您的数组是单维的,因此您无法将其元素初始化为两个值。此外,您不应该声明循环中每个元素的类型。您正在寻找的是一个二维数组 - 代码如下:

public class Bank{
    public static void main (String args []){

        int [][] account;
        account = new int[100][];

        for(int c = 0; c < 100; c++){
            account[c] = new int[]{(int)(Math.random()*1000)  , (int)(Math.random()*100)};
        }

    }
}

另请注意,循环应从0开始,而不是1(Java数组从0开始)。最后,请注意(int)强制转换 - 您需要这样做以避免可能丢失精度错误。

答案 1 :(得分:2)

您的计划有一些改进:

  • Java中第一个数组索引是0而不是1
  • 介绍了java.lang.Random,因为它提供了从固定范围(0 ... 1000)获取新随机值的更简洁方法

    public class Bank {
        public static void main (String args[]) {
            final Random rnd = new Random();
            final int [][] account = new int [100][2];
    
            for(int c = 0; c < 100; c++){
                account[c] = new int[]{ rnd.nextInt(1000)  , rnd.nextInt(1000)};
            }
        }
    }
    

答案 2 :(得分:0)

而不是

int account[c] = new int............
你可能正在寻找

account[c] = new int............

答案 3 :(得分:0)

第一个account是一个重复变量,第二个你不需要初始化器。 第三个问题是account[0]不会被初始化。因此,更正后的版本如下所示:

public static void main (String args []){

    int [] account;
    account = new int [100];

    for(int c = 0; c < 100; c++){
        account[c] = (int) (Math.random()*1000);
    }

}

或者如果你需要一个数组数组,你可以这样做:

int [][] account = new int [100][2];

for(int c = 0; c < 100; c++){
    account[c] = new int[]{ Math.random()*1000  , Math.random()*100};
}