我的任务是为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()
是错误的,但我无法弄清楚如何让它返回该列表中每个对象的描述。
答案 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 + "}";
}
}