Ответ 1
JLS 6.4.5 Члены типа массива
Элементы типа массива являются следующими:
public final field length
, который содержит количество компонентов массива (длина может быть положительной или нулевой).- Метод
public
clone
, который переопределяет метод с тем же именем в классеObject
и не отменяет проверенных исключений. Возвращаемым типом метода clone типа массиваT[]
являетсяT[]
.- Все члены, унаследованные от класса
Object
; единственным методомObject
, который не наследуется, является его методclone
.
Таким образом:
byte[] original = ...;
byte[] copy = original.clone();
Обратите внимание, что для массива ссылочных типов clone()
по существу является мелкой копией.
Кроме того, Java не имеет многомерных массивов; он имеет массив массивов. Таким образом, a byte[][]
является Object[]
и также подчиняется мелкой копии.
См. также
Связанные вопросы
- Глубокое клонирование многомерных массивов в Java...?
- Как эффективно копировать массив в java?
- Как глубоко скопировать нерегулярный 2D-массив
- Как сделать глубокую копию массива 2d в Java?
Другие опции
Обратите внимание, что clone()
возвращает новый объект массива. Если вы просто хотите скопировать значения из одного массива в уже существующий массив, вы можете использовать, например. System.arraycopy
.
Там также java.util.Arrays.copyOf
, который позволяет вам создать копию с другой длиной (либо усечением, либо дополнением).