如何覆盖对象的ArrayList的ToString方法?
问题描述:
class Person {
public String firstname;
public String lastname;
}
Person p1 = new Person("Jim","Green");
Person p2 = new Person("Tony","White");
ArrayList<Person> people = new ArrayList<Person>();
people.add(p1);
people.add(p2);
System.out.println(people.toString());
我想输出为[Jim,Tony]
,覆盖ToString
方法的最简单方法是什么?如何覆盖对象的ArrayList的ToString方法?
答
实际上,您需要在Person类中重写toString(),它将返回firstname,因为ArrayList会自动调用封闭类型的toString以打印元素的字符串表示形式。
@Override
public String toString() {
return this.firstname;
}
所以,将上面的方法添加到你的Person类,并且可能你会得到你想要的。
P.S.: - 在附注中,您不需要做people.toString()
。只要执行System.out.println(people)
,它将自动调用toString()
方法ArrayList
。在Person
类
public static String toString(ArrayList<Person> people) {
Iterator<Person> iter = people.iterator();
....
}
答
您可以在Person类写一个静态辅助方法。
public String toString() {
return firstname;
}
答
写重写方法toString()
方法:
答
在这种情况下,您必须重写Person类的toString
方法,因为arrayList只是迭代Person类实例。