Como copiar a matriz em java

Como copiar a matriz em java
Se uma matriz for copiada para outra, o resultado deve ser que existem duas matrizes independentes com dois nomes diferentes, mas com os mesmos valores correspondentes. Uma mudança no valor de um elemento de matriz não deve resultar em nenhuma mudança no elemento correspondente da outra matriz.

Quando uma matriz é realmente copiada para outra, se o comprimento da nova matriz for mais curto que o comprimento da matriz original, a nova matriz é uma cópia, mas truncada no comprimento copiado. Se a nova matriz for mais longa, os elementos extras em direção ao seu fim serão preenchidos com os valores padrão do tipo de dados. Para que uma matriz seja copiada para outra, ambas as matrizes devem ser do mesmo tipo ou tipos compatíveis.

Java tem um método para copiar uma matriz para outra. Este método é o método copyof () e está sobrecarregado para os diferentes tipos de dados. É um método estático da classe de matriz. "Estática" significa que uma matriz não precisa ser instanciada para que o método seja usado. Ele usa o nome da classe, Array, com o primeiro 'A' em maiúsculas. O método retorna a matriz copiada. Este artigo explica os diferentes formulários sobrecarregados do método copyof (). Inclui como copiar tipos de referência. Como copiar uma faixa de matriz não é deixada de fora.

Copiando uma variedade de valores booleanos

A sintaxe é:

Booleano estático [] copyof (booleano [] original, int newLength)

Original é o nome da matriz original. NewLength é o comprimento da matriz nova ou copiada. Se for mais curto, a cópia será truncada no NewLength. Se for mais longo, falso é acolchoado como valores para a nova matriz para ter o novo comprimento. O programa a seguir ilustra o seguinte:

importar java.util.Matrizes;
classe pública theClass
public static void main (string [] args)
boolean [] orig = true, verdadeiro, verdadeiro, verdadeiro, verdadeiro;
booleano [] cpy1 = matrizes.copyof (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
booleano [] cpy2 = matrizes.copyof (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
booleano [] cpy3 = ​​matrizes.copyof (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

A saída é:

Verdadeiro verdadeiro
Verdadeiro verdadeiro verdadeiro verdadeiro
True verdadeiro verdadeiro verdadeiro verdadeiro falso

Para a primeira linha de saída, há truncamento. Para a segunda linha de saída, ambas as matrizes são as mesmas. A nova matriz é mais longa que a matriz original para a terceira linha de saída.

O comprimento da nova matriz é determinado pelo parâmetro newLength do método copyof () sintaxe.

Copiando uma variedade de valores de bytes

A sintaxe é:

byte estático [] copyof (byte [] original, int newLength)

Original é o nome da matriz original. NewLength é o comprimento da matriz nova ou copiada. Se for mais curto, a cópia será truncada no NewLength. Se for mais longo, 0 é acolchoado como valores para a nova matriz, para ter o novo comprimento. O código do método Main () a seguir ilustra o seguinte:

byte estático [] copyof (byte [] original, int newLength)
Original é o nome da matriz original. NewLength é o comprimento da matriz nova ou copiada. Se for mais curto, a cópia será truncada no NewLength. Se for mais longo, 0 é acolchoado como valores para a nova matriz, para ter o novo comprimento. O código do método Main () a seguir ilustra o seguinte:
public static void main (string [] args)
byte [] orig = 1, 2, 3, 4, 5;
byte [] cpy1 = matrizes.copyof (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
byte [] cpy2 = matrizes.copyof (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
byte [] cpy3 = ​​matrizes.copyof (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

A saída é:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

O comprimento da nova matriz é determinado pelo parâmetro newLength do método copyof () sintaxe.

Copiando uma variedade de valores de char

A sintaxe é:

estático char [] copyof (char [] original, int newLength)

Original é o nome da matriz original. NewLength é o comprimento da matriz nova ou copiada. Se for mais curto, a cópia será truncada no NewLength. Se for mais longo, "é acolchoado como valores para a nova matriz, para ter o novo comprimento. Exemplo de código:

public static void main (string [] args)
char [] orig = 'a', 'b', 'c', 'd', 'e';
char [] cpy1 = matrizes.copyof (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
char [] cpy2 = matrizes.copyof (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
char [] cpy3 = ​​matrizes.copyof (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

A saída é:

A b c
A B C D E
A B C D E "

O comprimento da nova matriz é determinado pelo parâmetro newLength do método copyof () sintaxe.

Copiando uma variedade de valores duplos

A sintaxe é:

duplo estático [] copyof (duplo [] original, int newLength)

Original é o nome da matriz original. NewLength é o comprimento da matriz nova ou copiada. Se for mais curto, a cópia será truncada no NewLength. Se for mais longo, 0.0 é acolchoado como valores para a nova matriz, para ter o novo comprimento. Exemplo de código:

public static void main (string [] args)
duplo [] orig = 1.5, 2.5, 3.5, 4.5, 5.5;
duplo [] cpy1 = matrizes.copyof (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
duplo [] cpy2 = matrizes.copyof (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
duplo [] cpy3 = ​​matrizes.copyof (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

A saída é:

1.5 2.5 3.5
1.5 2.5 3.5 4.5 5.5
1.5 2.5 3.5 4.5 5.5 0.0 0.0

O comprimento da nova matriz é determinado pelo parâmetro newLength do método copyof () sintaxe.

Copiando uma variedade de valores de flutuação

A sintaxe é:

Float estático [] copyof (float [] original, int newLength)

Original é o nome da matriz original. NewLength é o comprimento da matriz nova ou copiada. Se for mais curto, a cópia será truncada no NewLength. Se for mais longo, 0.0 é acolchoado como valores para a nova matriz, para ter o novo comprimento. Exemplo de código:

public static void main (string [] args)
flutuar [] orig = 1.5f, 2.5f, 3.5f, 4.5f, 5.5f;
flutuar [] cpy1 = matrizes.copyof (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
flutuar [] cpy2 = matrizes.copyof (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
flutuar [] cpy3 = ​​matrizes.copyof (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

A saída é:

1.5 2.5 3.5
1.5 2.5 3.5 4.5 5.5
1.5 2.5 3.5 4.5 5.5 0.0 0.0

O comprimento da nova matriz é determinado pelo parâmetro newLength do método copyof () sintaxe.

Copiando uma variedade de valores int

A sintaxe é:

estático int [] copyof (int [] original, int newLength)

Original é o nome da matriz original. NewLength é o comprimento da matriz nova ou copiada. Se for mais curto, a cópia será truncada no NewLength. Se for mais longo, 0 é acolchoado como valores para a nova matriz, para ter o novo comprimento. Exemplo de código:

public static void main (string [] args)
int [] orig = 1, 2, 3, 4, 5;
int [] cpy1 = matrizes.copyof (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
int [] cpy2 = matrizes.copyof (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
int [] cpy3 = ​​matrizes.copyof (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

A saída é:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

O comprimento da nova matriz é determinado pelo parâmetro newLength do método copyof () sintaxe.

Copiando uma variedade de valores longos

A sintaxe é:

estático longo [] copyof (longo [] original, int newLength)

Original é o nome da matriz original. NewLength é o comprimento da matriz nova ou copiada. Se for mais curto, a cópia será truncada no NewLength. Se for mais longo, 0 é acolchoado como valores para a nova matriz, para ter o novo comprimento. Exemplo de código:

public static void main (string [] args)
long [] orig = 1, 2, 3, 4, 5;
longo [] cpy1 = matrizes.copyof (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
longo [] cpy2 = matrizes.copyof (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
longo [] cpy3 = ​​matrizes.copyof (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

A saída é:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

O comprimento da nova matriz é determinado pelo parâmetro newLength do método copyof () sintaxe.

Copiando uma variedade de valores curtos

A sintaxe é:

estático curto [] copyof (curto [] original, int newLength)

Original é o nome da matriz original. NewLength é o comprimento da matriz nova ou copiada. Se for mais curto, a cópia será truncada no NewLength. Se for mais longo, 0 é acolchoado como valores para a nova matriz, para ter o novo comprimento. Exemplo de código:

public static void main (string [] args)
curto [] orig = 1, 2, 3, 4, 5;
curto [] cpy1 = matrizes.copyof (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
curto [] cpy2 = matrizes.copyof (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
curto [] cpy3 = ​​matrizes.copyof (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

A saída é:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

Copiando uma variedade de tipos de dados de referência

Um bom exemplo do tipo de dados de referência é o objeto String, instanciado da classe String. Sua sintaxe copyof () é a mesma que as sintaxes acima. O código a seguir ilustra o seguinte:

importar java.util.Matrizes;
classe pública theClass
public static void main (string [] args)
String [] orig = "One", "Two", "Three", "Four", "Five";
String [] cpy1 = matrizes.copyof (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
String [] cpy2 = matrizes.copyof (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
String [] cpy3 = ​​matrizes.copyof (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

A saída é:

um dois três
um dois três quatro cinco
um dois três quatro cinco nulos nulos

O valor padrão para o tipo de dados de referência é nulo.

Copiando um alcance

O alcance de uma matriz pode ser copiado. A sintaxe para copiar o intervalo de uma variedade de chars é:

estático char [] copyofRange (char [] original, int de, int para)

"De" é o primeiro índice, e "to" é o último índice, cujo valor do intervalo, simplesmente não está incluído, na cópia. Exemplo Código:

public static void main (string [] args)
char [] orig = 'a', 'b', 'c', 'd', 'e';
char [] cpy = matrizes.copyofrange (orig, 1, 3);
para (int i = 0; i

A saída é:

B c

Copiar os intervalos dos tipos de dados primitivos e de referência é semelhante a este código.

Conclusão

A classe Array tem o método estático sobrecarregado para copiar matrizes. É usado para copiar toda a matriz. Se a matriz copiada for curta, a cópia será feita para o comprimento truncado indicado. Se a matriz copiada for mais longa que a matriz original, o valor padrão será acolchoado para os elementos adicionais adicionais. O método estático copyofRange () pode ser usado para copiar um intervalo. A próxima coisa que o leitor deve estudar é como copiar uma variedade de tipos genéricos, .