2014-10-10 7 views

ответ

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"); 

EDIT:

Тогда я должен использовать две строки: String [] strArray = новый String [5]; Arrays.fill (strArray, "foo") ;. Есть ли однострочное решение?

Вы можете использовать Collections.nCopies(5, "foo") и объединить его с помощью метода List.toArray() для преобразования списка в массив в однострочника:

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

Тогда я должен использовать две строки: 'String [] strArray = новый String [5]; Arrays.fill (strArray, "foo"); '. Есть ли однострочное решение? – laurt

+0

Очень просто: Collections.nCopies (5, "foo") Thkns! –

Смежные вопросы