Java 如何从main向ArrayList添加对象?
所以我有一个名为Persons的类,这个类在main中创建时有一个添加Person对象的方法Java 如何从main向ArrayList添加对象?,java,object,arraylist,main,Java,Object,Arraylist,Main,所以我有一个名为Persons的类,这个类在main中创建时有一个添加Person对象的方法 import java.util.*; public class Persons { public ArrayList<Person> personsList = new ArrayList<Person>(); public boolean addPerson(Person newPerson) { personsList.add(newPerson)
import java.util.*;
public class Persons {
public ArrayList<Person> personsList = new ArrayList<Person>();
public boolean addPerson(Person newPerson) {
personsList.add(newPerson);
return true;
}
}
import java.util.*;
公共阶层人士{
public ArrayList personlist=new ArrayList();
公共布尔addPerson(Person newPerson){
personsList.add(newPerson);
返回true;
}
}
这是我的主要方法
import java.util.*;
public class testPersons {
public static void main(String[] args) {
Persons persons = new Persons();
Address person1Address = new Address(xxx, "xxx", "xxx", "CA", "xxx");
Address person1JobAddress = new Address(1542, "High St", "Santa Cruz", "CA", "94063");
ArrayList<String> person1Phone = new ArrayList<String>();
person1Phone.add("xxx-xxx-xxx");
Job person1Job = new Job("Teacher", 25000.00, person1JobAddress);
Person person1 = new Person("xxxxxxx", "San Mateo", 'M', person1Address, person1Job, person1Phone);
persons.addPerson(person1);
System.out.println(persons);
}
}
import java.util.*;
公共类测试人员{
公共静态void main(字符串[]args){
人员=新人员();
地址人1地址=新地址(xxx,“xxx”,“xxx”,“CA”,“xxx”);
Address person1JobAddress=新地址(1542,“High St”,“Santa Cruz”,“CA”,“94063”);
ArrayList person1Phone=新的ArrayList();
person1Phone.add(“xxx xxx xxx”);
Job person1Job=新工作(“教师”,25000.00,person1JobAddress);
Person person1=新人(“xxxxxxx”、“San Mateo”、“M”、person1地址、person1工作、person1电话);
人员。添加人员(人员1);
系统输出打印(人);
}
}
所以我的问题是,“如何将对象Persons1添加到Persons类中的arrayList中?”它确实可以编译,但我运行它时,会听到奇怪的胡言乱语。是我的Persons类中缺少了一些东西,还是我不能像以前那样打印ArrayList中的对象?确保所有与
Person
相关的类,包括Person
覆盖默认的toString()
当您使用System.out.println(persons)时,会发生以下情况:
- ArrayList中的
对象被逐个调用李>Person
- 对于每个
对象,调用其Person
is方法。如果未重写toString()
,将调用toString()
(默认)对象
。因此出现了“奇怪的胡言乱语”。您需要通过重写toString
toString()
hashCode()
。如果您希望它在对象中循环并打印它包含的所有对象,则需要编写代码来执行此操作。您可以打印人员的“默认”结果。一般的建议是覆盖toString
,我个人认为这是个坏主意,toString
应该保留用于调试。在您的情况下,您可以只遍历PersonList
而不是toString()?