Java - Copiando Arrays

Índice
Depois de dominar os conceitos de variedade e como preenchê-lo e como passar por um, certamente também precisaremos gerar cópias de matrizes, pois muitas vezes precisaremos processar o conteúdo do referido array sem alterar um original que iremos utilizar para outros fins.
Embora copiar possa parecer uma atividade muito simples, é realmente um pouco mais complexo do que atribuir o valor da matriz para outra variável declarada deste tipo.
Copiando matrizes
Como parte da lógica de nossos programas, provavelmente em algum momento precisaremos copie um array para uma variável diferentePara poder trabalhar com os elementos em outra instância do programa, como mencionamos no início, atribuir a variável que contém o array a outra não é a solução apropriada.
Suponha que façamos a atribuição da seguinte maneira:
varArrar2 = varArray1;

Neste caso, não há erro sintático, então a instrução funciona sem problemas, mesmo se tentarmos fazer um loop varArray2 obteremos os valores que sabemos que temos em varArray1, você se pergunta onde está o problema então, o problema é que nesta instrução o que você fez Java era copiar a referência para o conteúdo da primeira matriz, portanto, se fizermos uma alteração em qualquer um dos dois, ambos verão a alteração.
Como podemos ver, este não é um método muito eficaz, a menos que desejemos copiar a referência de forma eficaz.
Maneira correta de copiar uma matrizExistem várias maneiras de realizar o cópia de um array, usando um loop que atravessa a primeira matriz e atribuindo os valores à segunda, usando o método estático arraycopy o que está contido na classe Sistema e finalmente usando o método cloneNo entanto, este último é um pouco mais avançado do que o que estamos vendo aqui.
Usando um Loop
Este é o método mais simples de todos, embora seja um pouco trabalhoso, cumpre o objetivo corretamente e nos permite obter um novo array que seria a cópia do original e totalmente independente dele, para fazer essa cópia que vamos faça o seguinte:
 int [] varArray1 = {2, 3, 1, 5, 10}; int [] varArray2 = novo int [varArray1.length]; para (int i = 0; i <varArray1.length; i ++) {varArray2 [i] = varArray1 [i]; } 

Como vemos que é algo muito simples, temos nosso primeira matriz com uma série de valores já atribuídos em seu conteúdo, criamos um segunda matriz e indicamos que sua dimensão será o comprimento da matriz original e, finalmente, com um para loop estamos atribuindo ao nosso novo array o valor que corresponde à posição do ciclo do primeiro array.
Usando o método arraycopy
Uma maneira mais simples que usa um pouco menos de código é o método estático arraycopy, este método quebra a convenção de nomenclatura de Java no entanto funciona corretamente, para usá-lo devemos fazer o seguinte:
System.arraycopy (varArray1, varArray1_pos, varArray2, varArray2_pos, comprimento);

Como podemos ver em uma única linha resolvemos o problema, o método recebe em seu primeiro argumento o array que vamos copiar, depois recebe a posição inicial de onde vamos copiar, depois o array de destino da cópia , sua posição inicial e, finalmente, o comprimento da cópia:

Finalmente, vimos que copiar um array, embora não seja tão simples quanto uma atribuição de variáveis, é uma tarefa relativamente fácil usando os métodos descritos neste tutorial.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave