Как скопировать массив в Java? Копирование массивов
В статье поговорим о некоторых методах копирования массивов в Java. Этот язык программирования имеет встроенные методы, предназначенные для решения данных задач. С их помощью вы сможете сделать как полную копию массива, так и выполнить копирование некоторых элементов массива.
Методы для копирования массивов в Java
В Java существует довольно много специальных методов для копирования массивов:
1.В первую очередь, хотелось бы упомянуть
2.Следующий на очереди —
К примеру, написав System.arraycopy(источник, 2, назначения, 5, 7), вы скопируете семь элементов из массива-источника в итоговый массив, начиная со второго индекса источника в пятый индекс результирующего массива.
3.
4.
В принципе, для решения большинства задач по полному либо частичному копированию массивов в Java вышеперечисленных методов вам вполне хватит. Только учтите, что методы, встроенные в Java для копирования, годятся лишь для одномерных массивов.
Пришла пора посмотреть на них в действии.
import java.util.Arrays; public class JavaArrayCopyExample { /** * В этом классе мы демонстрируем методы копирования массивов в java * @param args */ public static void main(String[] args) { int[] source = {1,2,3,4,5,6,7,8,9}; int[] source1 = {1,2,3}; int[] destination=null; System.out.println("Массив-источник = " + Arrays.toString(source)); destination = copyFirstFiveFieldsOfArrayUsingSystem(source); System.out.println("Копируем первые пять элементов массива, если они есть. Итоговый массив = " + Arrays.toString(destination)); destination = copyFirstFiveFieldsOfArrayUsingSystem(source1); System.out.println("Копируем первые пять элементов массива, если они есть. Итоговый массив = " + Arrays.toString(destination)); destination = copyFullArrayUsingSystem(source); System.out.println("Осуществляем полное копирование массива посредством System.copyarray(). Итоговый массив = " + Arrays.toString(destination)); destination = copyFullArrayUsingClone(source); System.out.println("Осуществляем полное копирование массива посредством clone(). Итоговый массив = " + Arrays.toString(destination)); destination = copyFullArrayUsingArrayCopyOf(source); System.out.println("Осуществляем полное копирование массива посредством Arrays.copyOf(). Итоговый массив = " + Arrays.toString(destination)); destination = copyLastThreeUsingArrayCopyOfRange(source); System.out.println("Копируем последние три элемента массива посредством Arrays.copyOfRange(). Итоговый массив = " + Arrays.toString(destination)); } /** * Данный метод выполняет полное копирование массива посредством Arrays.copyOf() * @param source * @return */ private static int[] copyFullArrayUsingArrayCopyOf(int[] source) { return Arrays.copyOf(source, source.length); } /** * Данный метод копирует последние три элемента посредством * Arrays.copyOfRange() * @param source * @return */ private static int[] copyLastThreeUsingArrayCopyOfRange(int[] source) { // проверка длины для предотвращения java.lang.ArrayIndexOutOfBoundsException //но для простоты метода мы этого не делаем :) return Arrays.copyOfRange(source, source.length-3, source.length); } /** * Данный метод выполняет полное копирование массива посредством clone() * @param source * @return */ private static int[] copyFullArrayUsingClone(int[] source) { return source.clone(); } /** * Данный метод выполняет полное копирование массива посредством System.arraycopy() * @param source * @return */ private static int[] copyFullArrayUsingSystem(int[] source) { int[] temp=new int1; System.arraycopy(source, 0, temp, 0, source.length); return temp; } /** * Метод копирует первые пять элементов * посредством System.arraycopy() * @param source * @return */ private static int[] copyFirstFiveFieldsOfArrayUsingSystem(int[] source) { if(source.length > 5){ int[] temp=new int[5]; System.arraycopy(source, 0, temp, 0, 5); return temp; }else{ int[] temp=new int1; System.arraycopy(source, 0, temp, 0, source.length); return temp; } } }
Теперь посмотрим на результат выполнения нашей программы:
Массив-источник = [1, 2, 3, 4, 5, 6, 7, 8, 9] Копируем первые пять элементов массива, если они есть. Итоговый массив = [1, 2, 3, 4, 5] Копируем первые пять элементов массива, если они есть. Итоговый массив = [1, 2, 3] Осуществляем полное копирование массива посредством System.copyarray(). Итоговый массив = [1, 2, 3, 4, 5, 6, 7, 8, 9] Осуществляем полное копирование массива посредством clone(). Итоговый массив = [1, 2, 3, 4, 5, 6, 7, 8, 9] Осуществляем полное копирование массива посредством Arrays.copyOf(). Итоговый массив = [1, 2, 3, 4, 5, 6, 7, 8, 9] Копируем последние три элемента массива посредством Arrays.copyOfRange(). Итоговый массив = [7, 8, 9]
Вот и всё. Если же вы хотите получить действительно продвинутые знания по Java, приходите на наш курс: