Массивы копирования Java
Массивы копирования Java
В этом руководстве вы узнаете о различных способах копирования массивов (как одномерных, так и двумерных) в Java с помощью примеров.
В Java мы можем скопировать один массив в другой. Существует несколько способов копирования массивов в Java.
<час>1. Копирование массивов с помощью оператора присваивания
Возьмем пример,
04
Вывод :
13
В приведенном выше примере мы использовали оператор присваивания (00
), чтобы скопировать массив с именем numbers в другой массив с именем positiveNumbers .
Этот метод является самым простым, и он также работает. Однако с этой техникой есть проблема. Если мы изменим элементы одного массива, соответствующие элементы других массивов также изменятся. Например,
21
Вывод :
35
Здесь мы видим, что мы изменили одно значение числа множество. Когда мы печатаем positiveNumbers массив, мы видим, что это же значение также изменилось.
Это потому, что оба массива ссылаются на один и тот же объект массива. Это из-за мелкой копии. Чтобы узнать больше о поверхностном копировании, посетите страницу поверхностного копирования.
Теперь, чтобы создавать новые объекты массива при копировании массивов, нам нужна глубокая копия, а не поверхностная копия.
<час>2. Использование циклической конструкции для копирования массивов
Возьмем пример:
43
Вывод :
51
В приведенном выше примере мы использовали 15
цикл для перебора каждого элемента исходного массива. На каждой итерации мы копируем элементы из источника. массив в место назначения массив.
Здесь исходный и целевой массивы относятся к разным объектам (глубокая копия). Следовательно, если элементы одного массива изменяются, соответствующие элементы другого массива не изменяются.
Обратите внимание на заявление,
64
Здесь метод toString() используется для преобразования массива в строку. Чтобы узнать больше, посетите метод toString() (официальная документация по Java).
<час>3. Копирование массивов с помощью метода arraycopy()
В Java класс System содержит метод с именем 23
. для копирования массивов. Этот метод лучше подходит для копирования массивов, чем два предыдущих.
32
Метод позволяет скопировать указанную часть исходного массива в целевой массив. Например,
76
Здесь
- источник - исходный массив, который вы хотите скопировать
- srcPos - начальная позиция (индекс) в исходном массиве
- назначение - целевой массив, в который будут скопированы элементы из источника
- пункт назначения - начальная позиция (индекс) в целевом массиве
- длина - количество элементов для копирования
Возьмем пример:
83
Вывод :
93
В приведенном выше примере мы использовали 41
метод,
55
- целые элементы из n1 массив копируется в n2 массив64
- 2 элементы n1 массив, начиная с индекса 2 копируются в индекс, начиная с 1 из n3 массив
Как видите, начальное значение по умолчанию для элементов int тип массива равен 0.
<час>4. Копирование массивов с помощью метода copyOfRange()
Мы также можем использовать метод copyOfRange(), определенный в классе Java Arrays, для копирования массивов. Например,
100пре>Вывод
118В приведенном выше примере обратите внимание на строку
123Здесь мы видим, что мы создаем destination1 массив и копирование исходника массив к нему в то же время. Мы не создаем destination1 перед вызовом
<час>78
метод. Чтобы узнать больше об этом методе, посетите Java copyOfRange.5. Копирование двумерных массивов с помощью цикла
Подобно одномерному массиву, мы также можем скопировать двумерный массив с помощью
83
петля. Например,137Вывод :
149В приведенной выше программе обратите внимание на строку
152Здесь
<час>97
метод используется для обеспечения лучшего представления двумерного массива. Чтобы узнать больше, посетите Java deepToString().Копирование двумерных массивов с помощью arraycopy()
Чтобы упростить приведенный выше код, мы можем заменить внутренний цикл на
109
. как в случае с одномерным массивом. Например,169Вывод :
172Здесь мы видим, что получаем тот же результат, заменив внутренний
118
цикл с120
метод.
java
- С# Массивы
- Операторы Java
- Java-комментарии
- Java-интерфейс
- Java-проба с ресурсами
- Java-аннотации
- Массивы в C++ | Объявить | Инициализировать | Указатель на примеры массивов
- C++ динамическое выделение массивов с примером
- Учебное пособие по массивам Java:объявление, создание, инициализация [пример]
- Как создать массив объектов в Java