繁体   English   中英

使用toString打印出ArrayList

[英]Printing out ArrayList with toString

当我创建一个ArrayList对象并向其添加其他对象时,打印出ArrayList对象将打印出内部对象的内存引用。 但是,如果我将String添加到ArrayList对象,它将不会打印出String的内存引用,而是打印出实际的String值。 字符串也是类权限的对象,那么为什么不打印出字符串内存引用呢?

Java中CollectiontoString方法(这是ArrayList扩展的方法)在其每个元素上使用String.valueOfhttp : //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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM