Я хочу выделить новый массив длиной N и заполнить его, повторяя данный массив. Интерфейс выглядит следующим образом:
<T> T[] repeat(T[] array, int n);
Чтобы пояснить, что я имею в виду здесь, это небольшой пример:
String a = {"a", "b", "c"};
// b = {"a", "b", "c", "a", "b", "c", "a", "b", "c", "a"}
String b = repeat(a, 10);
Большинство программистов придумают следующее решение (для простоты генерации массива был выбран конкретный тип):
public String[] repeat(String[] array, int n) {
String[] repeated = new String[n];
for (int i = 0; i < n; i++) {
repeated[i] = array[i % array.length];
}
return repeated;
}
Есть ли более быстрый способ сделать это?