如何为对象的ArrayList创建toString方法?

时间:2014-03-03 22:12:20

标签: java arraylist

我的任务是为toString()中的每个对象创建一个ArrayList方法。我不知道该怎么做。这是具有ArrayList

的班级
public class DogManager {
    private ArrayList<Dog> dogList;

    public DogManager() {
        this.dogList = new ArrayList<Dog>();
    }

    public void addDog(String nameOfDog) {
        this.dogList.add(new Dog(nameOfDog));
    }

    public String toString() {
        String results = "+";
        for (int i = 0; i < this.dogList.size(); i++) {
            results += " " + this.dogList.get(i);
        }
        return results;
    }
}

我知道toString()是错误的,但我无法弄清楚如何让它返回该列表中每个对象的描述。

6 个答案:

答案 0 :(得分:4)

你很亲密。我能想到的最简单方法是为toString()实施Dog。然后在DogManager课程中,您可以遍历每个Dog并调用其toString()

即:

public String toString() {
    String results = "+";
    for(Dog d : dogList) {
        results += d.toString(); //if you implement toString() for Dog then it will be added here
    }
    return results;
  }
}

编辑:您也可以根据自己的喜好对其进行格式化。我注意到一些答案将每只狗分开“,”

答案 1 :(得分:0)

public String toString(){
    String toReturn = "[";

    for(Dog currentDog: dogList){
        toReturn+=currentDog.toString()+",";
    } 
    toReturn = toReturn.substring(0,toReturn.length()-1);

    return toReturn+"]";
}

答案 2 :(得分:0)

public String toString() {
    String results = "";
    for(Dog d : dogList) {
        results += "," + d.toString();
    }
    return results;
  }
}

答案 3 :(得分:0)

arraylist是一个充满了Objects的动态数组。为什么不在Dog类中覆盖toString方法。

答案 4 :(得分:0)

您需要在.toString()类中定义Dog方法,并使其覆盖.toString()类的默认Object方法。

public class Dog {

String name;
String age;
String race;

@Override
public String toString() {

    return String.format("Name: %s, Age: %s, Race: %s", name, age, race);
}
}

然后,您只需为数组的每个元素调用System.out.println(dog),即可显示在狗的.toString()方法中定义的自定义文字。

答案 5 :(得分:0)

我会做这样的事情,不需要遍历狗的列表(List.toString已经为你做了这些。)

public class Dog {
    private String name;

    @Override
    public String toString() {
        return "Dog{" + name + "}";
    }
}


public class DogManager {
    private List<Dog> dogs;

    @Override
    public String toString() {
        return "DogManager{dogs=" + dogs + "}";
    }
}