![](/img/trans.png)
[英]Printing an Arraylist in toString with lines separating each entry
[英]Printing out ArrayList with toString
当我创建一个ArrayList对象并向其添加其他对象时,打印出ArrayList对象将打印出内部对象的内存引用。 但是,如果我将String添加到ArrayList对象,它将不会打印出String的内存引用,而是打印出实际的String值。 字符串也是类权限的对象,那么为什么不打印出字符串内存引用呢?
Java中Collection
的toString
方法(这是ArrayList
扩展的方法)在其每个元素上使用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
,则字符串等于“ null”; 否则,返回obj.toString()
的值。
当您打印列表时,将调用列表的toString()
方法,该方法又调用其元素的toString()
方法。
每个类都扩展的Object类具有toString()
方法,该方法创建您所看到的“内存地址”输出(实际上,它不是内存地址,但无论如何)。 String
类重写toString()
方法以返回其内容。
要解决输出“问题”,请在要添加到列表中的其他对象的类中重写toString()
方法,以返回“人类可读”的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.