为什么直接打印java集合对象打印出来的不是哈希码,而是里面存储值

为什么直接打印java集合对象打印出来的不是哈希码,而是里面存储值,我也没看见集合里面有toString()方法啊,他是怎么做到的?

toString()继承自Object类 但是一般都会复写此方法 该方法返回一个字符串 有类名 at标记符 和对象的哈希码组成
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-14

以ArrayList为例

ArrayList的父类AbstractList的父类AbstractCollection里面有实现toString()

    public String toString() {
        Iterator<E> i = iterator();
        if (!i.hasNext())
            return "[]";

        StringBuilder sb = new StringBuilder();
        sb.append('[');
        for (;;) {
            E e = i.next();
            sb.append(e == this ? "(this Collection)" : e);
            if (!i.hasNext())
                return sb.append(']').toString();
            sb.append(", ");
        }
    }

追问

原来在这里,怪不得,我一直都没发现toString()方法在这个类里面,谢谢啊

追答

不客气

本回答被提问者和网友采纳
相似回答