Съдържание
След като овладеете понятията за масив и как да го попълним и как да преминем през такъв, също със сигурност ще трябва да генерираме копия на масиви, тъй като много пъти ще трябва да обработваме съдържанието на споменатия масив, без да променяме оригинал, който ще използваме за други цели.Въпреки че копирането може да звучи като много проста дейност, то наистина е малко по -сложно от присвояването на стойност на масива към друга декларирана променлива от този тип.
Копиране на масиви
Като част от логиката на нашите програми, в един момент вероятно ще имаме нужда копиране на масив в различна променливаЗа да можете да работите с елементите в друг екземпляр на програмата, както споменахме в началото, присвояването на променливата, която съдържа масива, на друго не е подходящото решение.
Да предположим, че изпълняваме заданието, както следва:
varArrar2 = varArray1;
В този случай няма синтактична грешка, така че инструкцията работи без проблеми, дори ако се опитаме да се въртим varArray2 ще получим стойностите, които знаем, че имаме varArray1, чудите се къде е проблемът тогава, проблемът е, че в тази инструкция какво сте направили Java беше да копирате препратката към съдържанието на първия масив, така че ако направим промяна в някой от двата, и двамата ще видят промяната.
Както виждаме, това не е много ефективен метод, освен ако не искаме да копираме справочника ефективно.
Правилен начин за копиране на масивИма няколко начина за изпълнение на копие на масив, използвайки цикъл, който преминава през първия масив и присвоява стойностите на втория, като използва метод на статично матрично копиране какво се съдържа в класа Система и накрая използвайки метод на клониранеПоследното обаче е малко по -напреднало от това, което виждаме тук.
Използване на цикъл
Това е най -простият метод от всички, макар и малко трудоемък, той изпълнява целта правилно и ни позволява да получим нов масив, който би бил копие на оригинала и напълно независим от него, за да направим това копие, към което ще отидем направете следното:
int [] varArray1 = {2, 3, 1, 5, 10}; int [] varArray2 = нов int [varArray1.length]; for (int i = 0; i <varArray1.length; i ++) {varArray2 [i] = varArray1 [i]; }
Както виждаме, това е нещо много просто, ние имаме своето първи масив с редица стойности, които вече са зададени в неговото съдържание, създаваме a втори масив и ние посочваме, че неговото измерение ще бъде дължината на оригиналния масив и накрая с a for цикъл ние присвояваме на нашия нов масив стойността, която съответства на позицията на цикъла на първия масив.
Използвайки метода arraycopy
По -прост начин, който използва малко по -малко код, е статичният метод масивкопия, този метод нарушава конвенцията за именуване на Java обаче работи правилно, за да го използваме, трябва да направим следното:
System.arraycopy (varArray1, varArray1_pos, varArray2, varArray2_pos, дължина);
Както можем да видим в един ред решаваме проблема, методът получава в първия си аргумент масива, който ще копираме, след това получава началната позиция от мястото, където ще копираме, след това целевия масив на копието , началната му позиция и накрая дължината на копирането:
И накрая, видяхме, че копирането на масив, въпреки че не е толкова просто, колкото присвояването на променливи, е относително лесна задача, използвайки методите, описани в този урок.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка