我在java中編寫了一個方法,它需要輸出ArrayList<String>
。 在這種方法中,經常使用字符串串聯。我使用StringBuilder
而不是字符串,因爲String
在串聯中更昂貴。java將ArrayList <StringBuilder>轉換爲ArrayList <String>
在返回結果之前,我怎樣才能將ArrayList<StringBuilder>
中的所有元素都投射到ArrayList<String>
?
我在java中編寫了一個方法,它需要輸出ArrayList<String>
。 在這種方法中,經常使用字符串串聯。我使用StringBuilder
而不是字符串,因爲String
在串聯中更昂貴。java將ArrayList <StringBuilder>轉換爲ArrayList <String>
在返回結果之前,我怎樣才能將ArrayList<StringBuilder>
中的所有元素都投射到ArrayList<String>
?
我怎麼可能投在
ArrayList<StringBuilder>
所有元素ArrayList<String>
?
你不能,你不應該。使其成爲一個或另一個ArrayList。
或者如果你必須翻譯,那麼你需要一個for循環遍歷集合,構建新的集合。
或者我想你可以聲明這個變量爲ArrayList<? extends CharSequence>
- 不行,因爲我們不能將add(...)
任何東西變成協變結構,所以我們不能添加任何東西到這個列表,只需從它讀取。
使用新的'Stream#map(Function)'功能! – 2014-09-26 01:58:21
@SotiriosDelimanolis:我對此並不熟悉 - 請用這些信息作出回答,以便我們都可以學習! – 2014-09-26 01:59:50
@HovercraftFullOfEels Sotirios意思就像'List
你的意思是:如何將'ArrayList'中的所有元素轉換爲'String'?你不能_cast_他們。 –
2014-09-26 01:53:50
我重新提出了這個問題,因爲[你如何將對象列表從一種類型轉換爲另一種類型的Java?](http://stackoverflow.com/questions/933447)涉及將超類型列表轉換爲子類型列表,而'StringBuilder'和'String'是無關的。 @SotiriosDelimanolis你現在可以添加你的'Stream#map'答案。 – 2014-09-26 02:14:07