Java 对象和数组列表
因此,我不会描述我尝试过什么,我只会简单地说明我正在尝试做什么,因为迄今为止的每一种方法都让我失败了,我相信这是我所缺少的简单的东西 我需要做的是创建一个对象数组。无论是保存对象的arraylist,还是保存对象的对象数组,我都不在乎 我必须做一个银行程序,我有8个数据域,每个数据域组成一个账户,也就是一个对象。我首先将所有8个数据字段添加到一个对象中,然后将该对象添加到arraylist或对象数组中 我的问题是,当我试图回忆一个特定的帐户。假设我调用arraylist或object数组,当我试图调用其中任何一个中的原始对象时,它们是空的或不兼容的。几乎就好像这些数据只是混在一起 下面是一些我必须帮助解释的代码Java 对象和数组列表,java,arrays,object,arraylist,Java,Arrays,Object,Arraylist,因此,我不会描述我尝试过什么,我只会简单地说明我正在尝试做什么,因为迄今为止的每一种方法都让我失败了,我相信这是我所缺少的简单的东西 我需要做的是创建一个对象数组。无论是保存对象的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
:)。我编辑了答案并添加了这个问题。谢谢.