簡體   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