4
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方法的最简单方法是什么?

4

4 回答 4

5

您实际上需要在 Person 类中覆盖 toString() ,这将返回名字,因为 ArrayList 会自动调用封闭类型的 toString 来打印元素的字符串表示形式。

@Override
public String toString() {
    return this.firstname;
}

因此,将上述方法添加到您的 Person 类中,您可能会得到您想要的。

PS : - 在旁注中,你不需要做people.toString(). 只要这样做System.out.println(people),它就会自动调用for的toString()方法ArrayList

于 2012-10-23T10:38:27.683 回答
2

您可以在 Person 类上编写一个静态辅助方法:

public static String toString(ArrayList<Person> people) {

    Iterator<Person> iter = people.iterator();

    ....


}
于 2012-10-23T10:40:34.010 回答
2

toString()Person类中编写覆盖方法方法。

public String toString() {
    return firstname;
}
于 2012-10-23T10:41:03.497 回答
0

在这种情况下,您必须重写toStringPerson 类的方法,因为 arrayList 只是迭代 Person 类实例。

于 2012-10-23T10:45:29.840 回答