Collections.nCopies()
Возвращает неизменяемый список из n одинаковых элементов.
Доступно с: Java 1.2
Синтаксис
public static <T> List<T> nCopies(int n, T o)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| n | int | Сколько раз повторить элемент. |
| o | T | Повторяемый элемент. |
Возвращаемое значение
List<T>Неизменяемый список длины n.
Примеры
Повтор элемента и строка-разделитель:
void main() {
IO.println(Collections.nCopies(3, "ab"));
IO.println(String.join("+", Collections.nCopies(4, "1")));
}Результат:
[ab, ab, ab]
1+1+1+1Изменяемый список, заполненный нулями:
void main() {
List<Integer> slots = new ArrayList<>(Collections.nCopies(5, 0));
slots.set(2, 7);
IO.println(slots);
}Результат:
[0, 0, 7, 0, 0]Примечания
Список не хранит n копий: он помнит один объект и число, поэтому занимает мало памяти даже для миллиона элементов. Все элементы — один и тот же объект; для изменяемых объектов (например, списков) это ловушка. Для строки проще "-".repeat(10).
См. также
- String.repeat() — Повторяет строку указанное число раз.
- Arrays.fill() — Заполняет весь массив или его часть одним значением.
- ArrayList — Изменяемый список на основе массива — самая частая реализация `List`.
- String.join() — Склеивает строки через разделитель.
В учебнике
- Вспомогательные методы коллекций — Класс Collections и полезные методы Java: max, min, frequency, reverse, shuffle, nCopies, неизменяемые копии и представления, Arrays.asList.