是在ArrayList类中重写了toString()

San*_*Das 0 java arraylist tostring

class Employee
{
    String name ;
    // Constructor 
    Employee(String name) {
        this.name = name;
    }
    // override toString method in Employee class
    @Override
    public String toString() {
        return name;
    }
}

public class TestArraylistIterator {

    public static void main(String[] args) {
        Employee obj1 = new Employee("Java");
        Employee obj2 = new Employee("Microsoft");

        TestArraylistIterator obj3 = new TestArraylistIterator();

        List ls = new ArrayList();
        ls.add(obj1);
        ls.add(obj2);               
        System.out.println("List object :: " + ls); 
        System.out.println("TestArraylistIterator :: " + obj3);     
    }
}

output : 
List object :: [Java, Microsoft]
TestArraylistIterator :: TestArraylistIterator@ad3ba4
Run Code Online (Sandbox Code Playgroud)

所以问题是:如果我们尝试打印任何对象,它会输出obj.getClass()+"@"+ obj.hashCode().但是在打印列表对象时,它不会以相同的方式打印列表对象.相反,看起来toString()已经在ArrayList类中被重写.但是在ArrayList API实现中没有找到这样的东西.欢迎任何sugg ..

mic*_*lak 5

不,但它被覆盖了AbstractCollection,这ArrayList是一个间接的子类.

供将来参考:在查看Java API文档时,在方法摘要下,可以有几个"从类SomeClass继承的方法"部分.在文档中ArrayList,它显示了toString()继承自AbstractCollection.