2017-10-06 34 views
1

我有一個包含4個元素的字符串數組。我想用相同的元素重複3或n次來擴展這個String數組。java中字符串數組的重複元素

例如,對於數組

String[] array = {"a", "b", "c", "d"}; 

我想有像

String[] array = {"a", "b", "c", "d", "a", "b", "c", "d", "a", "b", "c", "d" }; 

我想的東西如下:

String[] columnHeaderNamesArray = {"A","b","c","d"}; 
String[] extendedColumnHeaderNamesArray = new String[columnHeaderNamesArray.length * 3]; 
      Arrays.fill(extendedColumnHeaderNamesArray, columnHeaderNamesArray); 

但我得到了一個ArrayStoreException

+0

[重複的陣列的元素]的可能的複製(/ Q/32305652) – bcsb1001

+3

你是否檢查過javadoc的填充? – Optional

+0

'Arrays.fill()'不會將你的數組視爲實際的數組,它被視爲對象。所以,你試圖用數組對象填充字符串數組,這是不允許的。 –

回答

1

可以使用Collections.nCopies創建相同陣列的多個拷貝,然後平坦它們映射到一個單一的陣列:

String[] multiplied = 
    Collections.nCopies(4, array) 
       .stream() 
       .flatMap(Arrays::stream) 
       .toArray(String[]::new);