开发者社区> 问答> 正文

Java 中 linkedList 类的没有按照Object类toString 方法输出

Java 中 linkedList 类的 toString() 没什么输出的是一个 return getClass().getName() + "@" +Integer.toHexString(hashCode());,我在它的继承中也没有找到 toString 类的重写

展开
收起
蛮大人123 2016-03-11 14:00:47 2456 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    你说的这个是Object类的默认实现

        public String toString() {
            return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }

    实际上,LinkedList的toString()的输出是这样的
    [111, 222, 333]
    这是为啥呢?请看下图:
    screenshot
    从图中,可以看到,它的祖先类中有一个AbstractCollection
    而在这个类中,有一个toString()的覆写:

    public String toString() {
            Iterator<E> it = iterator();
            if (! it.hasNext())
                return "[]";
    
            StringBuilder sb = new StringBuilder();
            sb.append('[');
            for (;;) {
                E e = it.next();
                sb.append(e == this ? "(this Collection)" : e);
                if (! it.hasNext())
                    return sb.append(']').toString();
                sb.append(',').append(' ');
            }
        }

    看到这里,应该理解了吧?

    2019-07-17 18:59:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载