2014-10-10 77 views
30

Java中是否存在一種實用方法,用於生成所有元素等於指定值的指定長度的列表或數組(例如[「foo」,「foo」,「foo」,「 foo「,」foo「])?使用重複元素創建列表

回答

61

您可以使用Collections.nCopies。請注意,這會將參考複製到給定對象,而不是對象本身。如果你正在使用字符串,它無關緊要,因爲它們是不可改變的。

List<String> list = Collections.nCopies(5, "foo"); 
System.out.println(list); 
 
[foo, foo, foo, foo, foo] 
6

對於數組可以使用Arrays.fill(Object[] a, Object val)

String[] strArray = new String[10]; 
Arrays.fill(strArray, "foo"); 

編輯:

然後我必須使用兩行:字符串[] strArray =新的String [5]; Arrays.fill(strArray,「foo」);.是否有單線解決方案?

您可以使用Collections.nCopies(5, "foo")並與List.toArray()方法結合起來,以列表轉換爲一個數組中的一個班輪:

String[] strArray = Collections.nCopies(5, "foo").toArray(new String[5]); 
+0

然後我必須使用兩行:'字符串[] strArray =新的String [5]; Arrays.fill(strArray,「foo」);'。是否有單線解決方案? – laurt 2014-10-10 12:39:16

+0

非常簡單:Collections.nCopies(5,「foo」)Thkns! – 2017-10-10 14:14:51