Java 对象和数组列表

Java 对象和数组列表,java,arrays,object,arraylist,Java,Arrays,Object,Arraylist,因此,我不会描述我尝试过什么,我只会简单地说明我正在尝试做什么,因为迄今为止的每一种方法都让我失败了,我相信这是我所缺少的简单的东西 我需要做的是创建一个对象数组。无论是保存对象的arraylist,还是保存对象的对象数组,我都不在乎 我必须做一个银行程序,我有8个数据域,每个数据域组成一个账户,也就是一个对象。我首先将所有8个数据字段添加到一个对象中,然后将该对象添加到arraylist或对象数组中 我的问题是,当我试图回忆一个特定的帐户。假设我调用arraylist或object数组,当我试

因此,我不会描述我尝试过什么,我只会简单地说明我正在尝试做什么,因为迄今为止的每一种方法都让我失败了,我相信这是我所缺少的简单的东西

我需要做的是创建一个对象数组。无论是保存对象的arraylist,还是保存对象的对象数组,我都不在乎

我必须做一个银行程序,我有8个数据域,每个数据域组成一个账户,也就是一个对象。我首先将所有8个数据字段添加到一个对象中,然后将该对象添加到arraylist或对象数组中

我的问题是,当我试图回忆一个特定的帐户。假设我调用arraylist或object数组,当我试图调用其中任何一个中的原始对象时,它们是空的或不兼容的。几乎就好像这些数据只是混在一起

下面是一些我必须帮助解释的代码

static ArrayList AccountList = new ArrayList();
    static Object[] User = new Object[8];
在这里,我将数据添加到对象用户中

type = AddAccount.jComboBox1.getSelectedItem().toString();
    User[0] = type;
    number = AddAccount.jTextField1.getText();
    User[1] = number;
    owner = AddAccount.jTextField2.getText();
    User[2] = owner;
    date = AddAccount.jTextField3.getText();
    User[3] = date;
    balance = AddAccount.jTextField4.getText();
    User[4] = balance;
    fee = AddAccount.jTextField5.getText();
    User[5] = fee;
    rate = AddAccount.jTextField6.getText();
    User[6] = rate;
    minBalance = AddAccount.jTextField7.getText();
    User[7] = minBalance;
       AccountList.add(counter,User);
    counter++;
当我需要数据时,我调用下面的函数,int selection只是引用我想要的对象

 public static void displayData(int selection) {
            int row = selection;
            Object temp = AccountList.get(selection);
            System.out.println(temp[0].toString); //<--WHY WONT THAT WORK?

        }
publicstaticvoiddisplaydata(int选择){
int行=选择;
对象温度=AccountList.get(选择);

System.out.println(temp[0].toString);//我可以在这里注意到一些问题:

  • 您继续使用相同的
    对象[]
    ,每次插入之前,您应该创建一个新的
    对象[]
    ——否则您将覆盖现有数据。[请记住,
    ArrayList
    包含引用,如果您修改其中的对象,它也将在
    ArrayList
    中修改
  • 您需要将
    temp
    强制转换为
    对象[]
    ——或者更好地将
    AccountList
    声明为
    ArrayList
  • 完成所有操作后-应该是
    toString()
    ,而不是
    toString
    [这是一种方法]
  • 不相关,但对可读性很重要:在java中,惯例是变量以小写字符开头。这有助于其他程序员在阅读
    accountList
    而不是
    accountList
    时理解它是一个变量,而不是一个类


    此外,正如@GuillaumePolet所提到的,您可能需要重新考虑设计,而不是使用
    对象[]
    ,并将其存储在
    数组列表中,您可以构建自己的类[
    MyBankAccount
    ,例如]有8个字段,并且有
    AccountList
    类型的
    ArrayList
    。您会发现遵循逻辑并以这种方式维护代码要容易得多!

    您有一些问题,我可以在这里注意到:

  • 您继续使用相同的
    对象[]
    ,每次插入之前,您应该创建一个新的
    对象[]
    ——否则您将覆盖现有数据。[请记住,
    ArrayList
    包含引用,如果您修改其中的对象,它也将在
    ArrayList
    中修改
  • 您需要将
    temp
    强制转换为
    对象[]
    ——或者更好地将
    AccountList
    声明为
    ArrayList
  • 完成所有操作后-应该是
    toString()
    ,而不是
    toString
    [这是一种方法]
  • 不相关,但对可读性很重要:在java中,惯例是变量以小写字符开头。这有助于其他程序员在阅读
    accountList
    而不是
    accountList
    时理解它是一个变量,而不是一个类


    此外,正如@GuillaumePolet所提到的,您可能需要重新考虑设计,而不是使用
    对象[]
    ,并将其存储在
    数组列表中,您可以构建自己的类[
    MyBankAccount
    ,例如]有8个字段,并且有
    AccountList
    类型的
    ArrayList
    。你会发现遵循逻辑并以这种方式维护你的代码要容易得多!

    是的,同样地,Java是一种OO语言,而不是用Object[],实际上,您可以使用这8个属性创建一个新类,这将是非常多的better@GuillaumePolet:我同意,我专注于查找错误,没有提到设计问题。但是,C不是OO语言,我会按照这一行创建一个
    结构(struct
    :)。我编辑了答案并添加了这个问题。谢谢.是的,同样,Java是一种面向对象的语言,所以不用Object[]来建模对象,实际上,您可以使用这8个属性创建一个新类,这将是非常多的better@GuillaumePolet:我同意,我专注于查找错误,没有提到设计问题。但是,C不是OO语言,我会按照这一行创建一个
    结构(struct
    :)。我编辑了答案并添加了这个问题。谢谢.