Java 是否将ArrayList打印到输出中?

Java 是否将ArrayList打印到输出中?,java,arraylist,printing,Java,Arraylist,Printing,所以,我有一个ArrayList,我把动物储存在里面 private ArrayList<Animal> catalog = new ArrayList<>(); 我试着用它来做 private boolean InList(String name) { for (int i = 0; i < catalog.size(); i++) { if (name.equalsIgnoreCase(catalog.get(i).getNam

所以,我有一个ArrayList,我把动物储存在里面

private ArrayList<Animal> catalog = new ArrayList<>();
我试着用它来做

    private boolean InList(String name) {
    for (int i = 0; i < catalog.size(); i++) {
        if (name.equalsIgnoreCase(catalog.get(i).getName())) {
            return true;
        }
    }
    return false;
}

但它不起作用。你们能帮我得到这段代码吗?

如果你们想让它返回字符串,可以这样做

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());
}
}

定义一个打印的方法可能太多了,你可以这样做

System.out.println("List of animals: "+ catalog );
但为此,必须重写类animal中的toString方法

如果你不重写它,你会得到像这样的东西

[animalcatalogjava.Animal@33909752]
这是对象的defaukt to字符串

格式如下:

包裹。class@hashcode..


您需要重写toString方法来打印用户友好的对象名称,这有助于调试

用于比较两个动物对象是否相同的equals方法


有关如何或何时重写对象类方法的详细信息

为什么不尝试打印动物列表?请发布printIt,以及InList如何相关?当我尝试仅打印存储在中的动物目录时,我将获得[animalcatalogjava]。Animal@33909752]printIt在这里是私有字符串printIt{String animal=name;//catalog.add;return animal;}谢谢。不完全确定如何重写toString,但它现在可以工作了。谢谢。使用了第二个选项。你是对的,更好的一个:p
[animalcatalogjava.Animal@33909752]