当我创建一个ArrayList对象并向其中添加其他对象时,打印出ArrayList对象将打印出内部对象的内存引用。但是,如果将String添加到ArrayList对象,则不会打印出String的内存引用,而是显示实际的String值。字符串也是类的权利对象,所以为什么它不打印出字符串内存引用?使用toString打印ArrayList
1
A
回答
2
在Java中Collection
(这是一个ArrayList
延伸的)的toString
方法在它的每个元素的使用String.valueOf
:http://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#toString()
字符串表示形式集合的元素列表的顺序,他们由其迭代器返回,并用方括号(“[]”)括起来。相邻元素由字符“,”(逗号和空格)分隔。元素被转换为
String.valueOf(Object)
的字符串。
String.valueOf
被简单地抓住物体的toString
值:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#valueOf(java.lang.Object)
如果参数
null
,则字符串等于 “零”;否则,返回obj.toString()
的值。
0
当您打印列表,列表的toString()
方法被调用,这反过来又要求其元素的toString()
方法。
对象,每个类扩展,类有一个toString()
方法,创建您所看到的“内存地址”输出(实际上它不是内存地址,但无论如何)。 String
类重写toString()
方法以返回其内容。
要修复输出“问题”,请在您添加到List的其他对象的类中覆盖toString()
方法,以返回“可读性”的内容。
相关问题
- 1. 使用toString打印链表
- 2. 使用toString重写和继承来打印arraylist?
- 3. 使用ArrayList打印素数
- 4. 在toString中用分隔每个条目的新行打印Arraylist
- 5. 正确使用toString来打印数组?
- 6. 使用toString来打印循环队列
- 7. 使用的toString打印信息
- 8. 使用.toString显示ArrayList
- 9. 将对象信息打印为toString()而不使用toString()?
- 10. print toString()不打印ArrayList类成员对象
- 11. 打印的ArrayList
- 12. 打印ArrayList
- 13. 从ArrayList打印
- 14. toString()方法打印空值
- 15. c#ToString() - 打印子项
- 16. 使用for-each循环打印ArrayList
- 17. 打印一个ArrayList
- 18. 不打印的ArrayList
- 19. ArrayList和toString
- 20. ArrayList toString()方法
- 21. ArrayList <String> toString()
- 22. ArrayList元素不打印
- 23. 在ArrayList中打印元素
- 24. 打印出一个ArrayList
- 25. 如何打印返回ArrayList?
- 26. ArrayList打印复制代码
- 27. Java ArrayList打印出空的?
- 28. 打印arraylist没有括号
- 29. Java打印ArrayList的点数
- 30. 打印arraylist大小崩溃
'String'重写'Object.toString'。其他对象不要 – Reimeus 2015-04-05 20:48:41
噢,好的,谢谢。这是一个好的,简洁的答案= p – Sygnerical 2015-04-05 20:55:29
除了'String'以外,许多其他类实现'toString()'方法,就像你自己的类一样。并且你看到的调用“native”Object#toString()的数字不是对象的内存引用,而是它的哈希码。 – 2015-04-05 21:00:29