我想問一下,我如何使用ArrayList來存儲toString()。我有一個類,最後有一個toString,我必須將類的toString存儲到ArrayList中。ArrayList和toString
像這樣:音樂的名稱,作者,發行年份,現效力 字符串,字符串,整數,布爾
我想問一下,我如何使用ArrayList來存儲toString()。我有一個類,最後有一個toString,我必須將類的toString存儲到ArrayList中。ArrayList和toString
像這樣:音樂的名稱,作者,發行年份,現效力 字符串,字符串,整數,布爾
希望你正確格式的文本在特定類的toString()
方法,
使用
List<String> listDesired = new ArrayList<String>(10);
listDesired.add(myMusicDataClassInstance.toString());
爲什麼將數組列表大小設置爲10? – luketorjussen
@luketorjussen:爲什麼不呢?零參數構造函數的作用相同,只是隱含的。 – home
@ Eng.Fouad - 感謝錯字更正。 –
可以使用"" + x
伎倆,以避免NullPointerException
的情況下x
爲空:
public List<String> musicToString(List<Music> musicList) {
final List<String> strings = new ArrayList<String>();
for (Music m : musicList) strings.add("" + m);
return strings;
}
這是有效的,因爲級聯運算符+
在所有引用類型的操作數上隱式調用String.valueOf
。
如果那是您的審美偏好,您也可以明確地寫下String.valueOf
。它也具有絕對不會實例化StringBuilder
的邊際好處(儘管編譯器很可能會避免這種情況,因爲它可以看到空字符串文字)。
但是也許我們想讓null出現在列表中? – luketorjussen
這將使字符串「null」出現在列表中。使用'm.toString()'不會讓任何東西出現在任何地方,除了在控制檯中的NPE :) –
你也可以使用String.valueOf();代替拼接。 –
應覆蓋toString()
該類和toString()
法定義的業務邏輯,將這個字符串轉換成ArrayList
目的。
它不會是一個適當的方法重寫,因爲'toString()'總是返回'String'。你可以重載這個方法,但是在這種情況下我也沒有看到這樣做的好處。 – Makoto
問題還不清楚,但如果你的對象已經有了toString()方法的定義,你不需要將它們單獨存儲在數組列表中。只需將對象添加到arrayList並執行Collections.toString(yourList)
;
List<String> listDesired = new ArrayList<String>(10);
我不確定我關注......你到底想說些什麼?你是說你在類文件的末尾聲明瞭方法嗎?您需要在本網站上儘可能具體,並且經常發佈代碼以充分理解您的問題。也歡迎來到StackOverFlow! – K2xL
你的代碼在哪裏,你已經試過了什麼? –