所以,我有ArrayList,我将动物存放在。
private ArrayList<Animal> catalog = new ArrayList<>();
现在,当我将4输入输出时,我需要将目录打印到输出中。
case 4:
System.out.println("List of animals: ");
printIt(); //Function to print catalog
break;
我试着用
做 private boolean InList(String name) {
for (int i = 0; i < catalog.size(); i++) {
if (name.equalsIgnoreCase(catalog.get(i).getName())) {
return true;
}
}
return false;
}
但它不起作用。你能帮助我得到这段代码吗?
答案 0 :(得分:0)
如果您希望它返回String,请执行类似的操作。
String printIt(ArrayList<Animal> animals) {
String temp = "";
for(Animal animal : animals) {
temp += animal.getName() + "\n";
}
return temp;
}
虽然我认为不需要,但请立即打印出来。
void printIt(ArrayList<Animal> animals) {
for(Animal animal : animals) {
System.out.println(animal.getName());
}
}
答案 1 :(得分:0)
定义打印的方法可能太多了,你可以这样做
System.out.println("List of animals: "+ catalog );
但为此必须覆盖类动物中的toString
方法......
如果你不重写,你会得到像
这样的东西[animalcatalogjava.Animal@33909752]
这是对象字符串的defaukt ...
格式如下:
package.class@hashcode ..
答案 2 :(得分:0)
你需要覆盖toString()方法来打印对象的用户友好名称,这有助于调试。
用于比较两个动物对象的equals()方法是否相同。
有关如何或何时覆盖Object类方法https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html
的更多信息