【问题标题】:How To Allocate Memory For MultiDimensional Array in a Constructor Class in Java [duplicate]如何在Java的构造函数类中为多维数组分配内存[重复]
【发布时间】:2015-06-20 16:59:50
【问题描述】:

当我将数组字段创建为 private double [] balance 时,我可以通过 balance= new double []{n,u,m,b,e,r,s}; 在构造函数类中分配内存。但是,当我尝试为多维数组分配内存时,它将不起作用。 netbeans IDE 中的错误说我无法将 int 转换为 double。所以我很困惑为什么会发生这种情况。任何帮助,将不胜感激。这是因为我没有将 0.00 包括为整数(即​​ 12 而不是 12.00)吗?

这是我的示例代码:

package myatmexample;


enum AccountType
{
    CHECKINGACCOUNT,
    SAVINGSACCOUNT,
    CDACCOUNT,
};

public class bankUserData
{
private final String []  users;
private AccountType [] userAccounts;
private double [][][] balance;

public bankUserData()
{
    users = new String []
    {
        "Jim Beam", "Bailey Irish-Cream", "Jack Daniels","Grey Goose", "Ginger Skyy", "Marga Rita",
        "Train Wreck", "OG Skywalker", "Flo Green", "Polly Pak", "Princess Diesel","Gracie Slick"
    };

    userAccounts = new AccountType[]
    {
        AccountType.CHECKINGACCOUNT,  
        AccountType.SAVINGSACCOUNT,
        AccountType.CDACCOUNT
    };

    balance = new double [][][]
    {
        { 350, 435, 796, 82.43, 1003.50, 2500, .50, 365, 892, 134, 768, 25892 },
        { 43, 58, 98, 100,54, 33.25, 65.5, 89.7, 71.8, 34.3, 45,67 },
        { 21,23,45,67,68,69,43,21,44,56.78,59, 64 }
    };

    Object [] fullAccountArray = { users, userAccounts };
}
}

【问题讨论】:

    标签: java memory multidimensional-array constructor allocation


    【解决方案1】:
    balance= new double [][][]   {{350, 435, 796, 82.43, 1003.50, 2500, .50,  
    365, 892, 134, 768, 25892},
    {43, 58, 98, 100,54, 33.25, 65.5, 89.7, 71.8, 34.3, 45,67},
    {21,23,45,67,68,69,43,21,44,56.78,59, 64}};
    

    初始化无效。需要 3D 矩阵,但您只能在括号内创建 2D 矩阵({{...}} 应该是 {{{...}}})。

    【讨论】:

      【解决方案2】:

      你有 Arrays of Arrays of

      {{350, 435, 796, 82.43, 1003.50, 2500, .50, 365, 892, 134, 768, 25892},
      {43, 58, 98, 100,54, 33.25, 65.5, 89.7, 71.8, 34.3, 45,67},
      {21,23,45,67,68,69,43,21,44,56.78,59, 64}};
      

      当您声明 new double [][][] 时:一个 Arrays of Arrays of Arrays of doubles。 所以代替 350 它需要一个双精度数组而不是双精度。

      希望它不会令人困惑;)

      【讨论】:

        猜你喜欢
        • 2015-03-12
        • 1970-01-01
        • 2021-11-15
        • 1970-01-01
        • 2015-08-02
        • 2021-07-16
        • 1970-01-01
        • 2021-07-21
        • 2016-07-29
        相关资源
        最近更新 更多