2014-10-10 80 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