对象和数组列表

时间:2012-03-14 16:59:46

标签: java arrays object arraylist

因此,不是描述我尝试过的内容,而是简单地列出我想要做的事情,因为到目前为止,每种方法都让我失望,而且我确信这是我想念的一些简单。

我需要做的是制作一个对象数组。它是一个保存对象的arraylist,还是一个保存对象的对象数组,我不在乎。

我必须制作一个银行业务程序,我有8个数据字段,每个集合组成一个帐户,因此是一个对象。我首先将所有8个数据字段添加到一个对象中,然后我将该对象添加到一个arraylist或一组对象。

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

这里有一些我需要帮助解释的代码。

static ArrayList AccountList = new ArrayList();
    static Object[] User = new Object[8];

我将数据添加到对象User

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选择只是引用我想要的对象

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

        }

任何帮助,或其他方法。

1 个答案:

答案 0 :(得分:4)

我有一些问题需要注意:

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

    另外,正如@GuillaumePolet所提到的,您可能想重新考虑设计,而不是使用Object[],并将其存储在ArrayList中,您可以构建自己的类[{{1}例如,包含8个字段,并且MyBankAccount类型为AccountList。您会发现遵循逻辑并以这种方式维护代码要容易得多!