Javascript Copiar Matriz de Objetos Sem Referência

| | | | | | | | | | | | | | | | | | | | | |

Ao trabalhar com arrays em Java, você pode decidir fazer uma cópia de um array. Por exemplo, se você estiver administrando um café e quiser criar um menu sazonal , poderá criar uma cópia do menu original para basear o novo menu.

Em Java, há várias maneiras de copiar uma matriz. Este tutorial irá explorar quatro métodos comuns de copiar tabelas e discutir como eles funcionam linha por linha. Depois de ler este tutorial, você será um mestre em copiar tabelas em Java.

Java Arrays

Em Java, um array é um contêiner que contém valores ‚Äã‚Äãque contêm um único tipo. Por exemplo, uma tabela pode ser usada para armazenar uma lista de livros ou uma lista de pontuações que os jogadores ganharam em um jogo de dardos.

As matrizes são úteis quando você deseja trabalhar com muitos valores ‚Äã‚ Äãporque você pode armazená-los em uma coleção. Isso permite que você condense seu código e simultaneamente execute os mesmos métodos nos mesmos valores.

A palavra Let queremos criar um array que armazene os cafés vendidos em nossa cafeteria. Podemos fazer isso usando este código:

String [] = coffees {"Espresso", "Mocha", "Latte", "cappuccino", "Versare Over", "Flat white" } ;

Neste exemplo, declaramos um array chamado cafes que armazena valores de string . Nossa matriz contém seis valores.

Cada elemento de uma matriz recebe um número de índice, começando com 0, que pode ser usado para se referir a elementos individuais em uma matriz.

Agora que exploramos o básico dos arrays Java, podemos discutir os métodos que você pode usar para copiar o conteúdo da sua tabela.

Copie o array usando o operador de atribuição

Um dos métodos de clonagem mais usados para copiar uma matriz é usar o operador de atribuição.

O operador de atribuição é usado para atribuir um valor a uma matriz. Usando o operador de atribuição, podemos atribuir o conteúdo de um array existente para uma nova variável, que criará uma cópia do nosso array existente.

Vamos voltar para o coffeeshop. Digamos que queremos criar uma cópia do cafes array no qual basearemos nosso menu de café de verão. Podemos usar este código para criar uma cópia do array:

Nosso código retorna:

Espresso, Moka, Latte, Cappuccino, Pour over, flat white,

Quebra do nosso código Descendente. Na primeira linha de código em nossa classe CopyAssignment, declaramos um array chamado cafes que armazena nosso menu padrão de café.

Na próxima linha, usamos o operador de atribuição para atribuir o valor de cafes para um novo array chamado summer_coffees. Em seguida, criamos um loop "for-each‚" que passa cada elemento do array summer_coffees e imprime no console.

Há uma desvantagem em usar esse método: se você alterar os elementos de uma matriz, a outra matriz também será alterada. Portanto, se alterarmos o valor de Latte Summer Latte em nossa lista summer_coffee, nossa lista coffee também seria alterada

loop para copiar arrays

a primeira abordagem que discutimos para copiar um array -. usando o operador de atribuição - cria o que é chamado de cópia superficial. Este é o caso porque atribuímos um objeto array existente a um novo, o que significa que quando alteramos qualquer objeto, ambos serão alterados - . os dois objetos estão relacionados

No entanto, muitas vezes precisamos criar uma cópia profunda . Cópias profundas copiam os valores ‚Äã‚Äão de um objeto existente e criam um novo objeto de matriz. Ao criar uma cópia completa, você pode editar seu novo tabela sem afetar o original.

Uma abordagem que pode ser usada para criar uma cópia completa é criar um loop através do conteúdo de um array e criar um novo array.

Suponha que nós deseja criar uma cópia completa da nossa tabela de cafés chamada summer_coffees. Esta deve ser uma cópia completa, pois pretendemos modificar o conteúdo da summer_coffees tabela para refletir os novos cafés que ofereceremos nos meses de verão.

Aqui está o código que usaríamos para criar uma cópia profunda usando um loop :

Quando executamos nosso código, a saída é a seguinte:

[Espresso, Mocha, Latte, Cappuccino, Pour over, Flat White]

Como você pode ver, nosso código criou uma cópia do nosso array original. Explicamos passo a passo como funciona:

  1. Importamos java.util.Arrays que inclui o método toString(), vamos usá-lo para imprimir nosso array no console no final do exemplo.
  1. Declaramos um array chamado cafes que armazena a lista de cafés em nosso menu padrão.
  2. Iniciamos um array chamado summer_coffees que pode armazenar seis valores.
  3. Usamos um loop para percorrer cada item na lista do café.
  4. Sempre que o loop for executado, o elemento com o valor de índice i em summer_coffees será atribuído ao elemento com o valor de índice de código <> i em cafés.
  5. Usamos Arrays.toString () para converter summer_coffees em uma string e, em seguida, imprimimos o novo array com nossos itens copiados no console.

Usando métodos Java copyOfRange()

O método Java copyOfRange() para copiar Arrays .copyOfRange ( ) faz parte da classe java.util.Arrays Aqui está a sintaxe para o método copyOfRange():

Vamos analisar a sintaxe do método copyOfRange():

  1. DataType é o tipo de dados que o novo array is irá armazenar.
  2. newArray é o nome do novo array.
  3. oldArray é o array cujos valores ‚Äã ‚Äãvocê deseja copiar para o diretório newArray.
  4. indexPos é onde a operação de cópia deve começar no oldArray.
  5. comprimento é o número de valores ‚Äã‚Äãque devem ser copiados de oldArray newArray.
  6. < /ol>

    Vamos dar um exemplo para ilustrar o método copyOfRange() em ação. Suponha que queremos fazer uma cópia do nosso array cafes anterior. Podemos fazer isso usando este código:

    Nosso código retorna:

    cafés de verão: [Espresso, Moka, Latte, Cappuccino, Pour over, flat white]

    decomponha nosso código:

    1. Importamos a biblioteca java.util.Arrays que armazena os métodos copyOfRange() e toString() que usaremos em nosso exemplo.
    2. declaramos um array chamado cafes que armazena os cafés em nosso menu padrão.
    3. Declaramos um array chamado summer_coffees e use o método copyOfRange() para criar uma cópia do array cafés. Os parâmetros que especificamos são os seguintes:
      1. cafés é o nome da tabela que queremos copiar
      2. indica que nós. deseja copiar os valores começando na posição do índice de 0 coffee table .
      3. coffees.length indica que queremos copiar cada valor em a. list
      4. Imprimimos "cafés de verão:" . seguido pelo array resultante chamado summer_coffees no console

      Agora criamos uma cópia de nossa lista cafe chamada summer_coffees .

      Usando os métodos Java Arraycopy()

      O método arraycopy() é usado para copiar dados de uma rede para outra. O método arraycopy() faz parte da classe do sistema e inclui um conjunto de opções que permitem personalizar a cópia que você cria de um array existente.

      Aqui está a sintaxe do método arraycopy():< br>

      System.arraycopy (sourceArray, StartingPos, newArray, newArrayStartingPos, comprimento);

      Quebrando este método Let down. copyarray() aceita cinco parâmetros:

      • sourceArray é o nome do array que você deseja copiar
      • startPos. é o local do índice do qual você deseja começar a copiar os valores ‚Äã‚Äãpara o source_array.
      • newArray é o nome do novo array no qual os valores ‚Äã‚Äãserão copiados.
      • newArrayStartingPos é a posição do índice onde os valores copiados ‚Äã‚Äãserão adicionados.
      • comprimento é o número de elementos que você deseja copiar para o diretório new_array.

      Volte para a cafeteria. Suponha que queremos copiar cada valor em nosso array cafes em um novo array chamado summer_coffees. Podemos fazer isso usando este código:

      Nosso código retorna:

verão cafés: [espresso, mocha, latte, cappuccino, pour over, flat white]

decomponha nosso código passo a passo -Passo:

  1. importamos o pacote java.util.Arrays no início de nosso programa, incluindo o método toString() que usaremos para imprimir a cópia do array que criamos no final de nosso programa.
  2. Declaramos um array chamado coffe es que armazena os cafés em nosso menu padrão.
  3. Iniciamos um array chamado summer_coffees que conterá 6 valores.
  4. Usamos arraycopy () para criar uma cópia de nosso array de cafés. Aqui estão os parâmetros que especificamos.
    1. cafés é o array que queremos copiar
    2. é a posição onde queremos que nossa cópia comece no cafés array.
    3. summer_coffees é o array onde queremos que os valores copiados ‚Äã‚Äã sejam anexados.
    4. é onde queremos que os valores copiados ‚Äã‚Äã comecem a ser adicionados ao array summer_coffees.
    5. coffees.length é o número do array elementos que queremos copiar. Nesse caso, usar coffees.length nos permite copiar cada item da lista cafes.
    6. Imprimimos uma mensagem que diz "cafés de verão:"., seguido da lista de cafés de verão que criamos
    7. Conclusão

      Copiar um array é uma operação comum ao trabalhar com listas. Este tutorial explorou quatro maneiras pelas quais um array pode ser copiado em Java.

      Primeiro, discutimos como criar uma profundidade de cópia superficial com o operador de atribuição, então continuamos explicando como fazer uma cópia completa usando um laço. Então exploramos como usar o método copyOfRange() para criar uma cópia de um array e como o método do sistema arraycopy() é usado para copiar um array.

      Agora você está pronto para começar a copiar arrays em Java como um!pro