Как создать копию массива в java?

Пользователь

от stephania , в категории: Java , 2 года назад

Как создать копию массива в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kenya , 2 года назад

@stephania На самом деле существует множество путей создать копию массива в Java. Я бы хотел остановиться на двух часто использующих в реальных проектах:

  1. Использовать .clone() метод и скопировать массив
  2. Использовать .arraycopy() метод для создания копии массива в Java

Посмотрите небольшой пример каждого из метода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
String[] array = {"Строка 1", "Строка 2"};

String [] arrayCopy;
// Первый метод с .clone()
arrayCopy = array.clone();

System.out.println(Arrays.toString(arrayCopy));

// Или вариант с arraycopy
String [] arrayCopy2 = new String[arrayCopy.length];
System.arraycopy(array ,0, arrayCopy2, 0, arrayCopy.length );

System.out.println(Arrays.toString(arrayCopy2));


Пользователь

от nelle , год назад

@stephania 

В Java, можно создать копию массива, используя метод clone(). Например:

1
2
int[] originalArray = {1, 2, 3, 4, 5};
int[] copiedArray = originalArray.clone();


Также можно использовать метод Arrays.copyOf() или System.arraycopy() для создания копии массива.

1
2
int[] originalArray = {1, 2, 3, 4, 5};
int[] copiedArray = Arrays.copyOf(originalArray, originalArray.length);


1
2
3
int[] originalArray = {1, 2, 3, 4, 5};
int[] copiedArray = new int[originalArray.length];
System.arraycopy(originalArray, 0, copiedArray, 0, originalArray.length);


Обратите внимание, что это создаст поверхностную копию массива, то есть, если массив содержит объекты, то они будут ссылаться на те же самые объекты, а не на их копии.