Arrays.copyOf()
Копирует массив в новый — той же или другой длины. Часть массива копирует copyOfRange().
Доступно с: Java 6
Синтаксис
static int[] copyOf(int[] original, int newLength)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| original | int[], T[], … | Исходный массив. |
| newLength | int | Длина копии. Если больше исходной — хвост заполняется значениями по умолчанию, если меньше — лишнее отрезается. |
Возвращаемое значение
same array typeНовый массив того же типа.
Примеры
Копия, увеличенная копия и часть массива:
void main() {
int[] original = {1, 2, 3};
int[] copy = Arrays.copyOf(original, original.length);
int[] bigger = Arrays.copyOf(original, 5);
int[] middle = Arrays.copyOfRange(new int[] {10, 20, 30, 40}, 1, 3);
copy[0] = 99;
IO.println(Arrays.toString(original));
IO.println(Arrays.toString(copy));
IO.println(Arrays.toString(bigger));
IO.println(Arrays.toString(middle));
}Результат:
[1, 2, 3]
[99, 2, 3]
[1, 2, 3, 0, 0]
[20, 30]Примечания
Присваивание int[] b = a; не копирует массив — обе переменные указывают на один и тот же массив. Копия создаётся через copyOf() или a.clone(). Копия неглубокая: для массива объектов копируются ссылки, сами объекты общие.
См. также
- Arrays.fill() — Заполняет весь массив или его часть одним значением.
- Arrays.equals() — Сравнивает содержимое двух массивов поэлементно.
- array.length — Длина массива — количество элементов. Поле, а не метод: пишется без скобок.
Вопросы и ответы по теме
В учебнике
- Класс Arrays — Утилиты класса java.util.Arrays: toString, sort, fill, copyOf, copyOfRange, equals и binarySearch.