我怎样才能最好地用原始对象填充这个数组?

时间:2014-06-12 23:09:56

标签: java object arraylist

我有一个数组:

ArrayList<Person> people = new ArrayList();

我想将人员添加到数组中,但我不认为它会起作用,因为所有对象都具有相同的名称。

Person person = new Person();
person.firstName = firstNameTextField.getText();
person.lastName = lastNameTextField.getText();
//Etc
people.add(person);

我的问题是,我可以使用相同变量名的对象填充数组吗?如果没有,我怎么还能使用People个对象?

3 个答案:

答案 0 :(得分:0)

对象与变量名无关!是的,当然会起作用!

答案 1 :(得分:0)

是的,你对你所描述的内容没有任何疑问。

你最终会得到这样的东西:

Person person = new Person();
person.firstName = firstNameTextField.getText();
person.lastName = lastNameTextField.getText();
people.add(person);

person = new Person(); // <-- reinitializing person.
person.firstName = firstNameTextField.getText();
person.lastName = lastNameTextField.getText();
people.add(person);

此时List包含两个唯一的Person对象。迭代它们可能看起来像这样:

ArrayList<Person> people = new ArrayList();
// add a bunch of Person objects like we did above

for(int i = 0; i < people.size(); i++) {
    System.out.println("Found person: " + people.get(i).firstName);
}

您继续拨打people.add(个人)电话,并不一定会反复将同一个人重复添加到您的列表中。在上面显示的情况中,添加了唯一的Person对象,可以单独访问,如for循环中所示。

答案 2 :(得分:0)

如果你是懒人,你也可以在People中使用构造函数。

class Person {
 public Person(String firstname, String lastname) { 
 this.firstname=firstname;      
 this.lastname=lastname; 
}
}

然后......

people.add(new People("tom", "lastnameoftom"));
people.add(new People("Susi", "SusisLastname"));

依旧......

但要回答你的问题..每次在var上使用new时,都会重新初始化。编译器将翻译这个:

People people = new People();
people.setSetter(data);

people = new People();
people.setSetter(otherdata);

到(示例)

People a = new People();
a.setSetter(data);

People b = new People();
b.setSetter(otherdata);