int[] anArrayInteiros;
byte[] anArrayBytes;
short[] anArraShorts;
long[] anArraLongs;
float[] anArrayFloats;
double[] anArrayDoubles;
boolean[] anArrayBooleans;
char[] anArrayChars;
String[] anArrayStrings;
Como vimos nas declarações acima, o tamanho do array não faz parte da declaração do tipo. A quantidade de elementos é definida na chamada a new.
// cria um array para 10 inteiros
int[] arrayDezInteiros = new int[10];
// preenche o array
for(int i = 0, i < 10, i++)
arrayDezInteiros[i] = i;
// imprime
for(int i = 0, i < 10, i++) {
System.out.println("Elemento "+Integer.toString(i+1)+" no índice "+Integer.toString(i)+": "+ anArray[i]);
}
Outra forma de criar esta variável é através da criação e inicialização do array na forma apresentada abaixo:
int[] arrayDezInteiros = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
O tamanho do array é dado pela quantidade de elementos indicados entre { }.
É possível declarar um array multidimensional utilizando dois ou mais conjuntos de parênteses, como por exemplo para criar uma matriz retangular de 10x2 utilizamos:
int[][] arrayDezPorDoisInteiros = new int[10][2];
Neste caso o acesso aos elementos é feito por um índice compostos como arrayDezPorDoisInteiros[1][0]
Copiando elementos de um array
Podemos copiar os elementos utilizando um método em java.lang.System denominado arraycopy que tem o seguinte formato:
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src - é o array de origem
srcPos - indica a posição inicial (índice) do array de origem de onde começará a cópia
dest - é o array de destino
destPos - indica a posição inicial (índice) do array de destino onde começarão a serem inseridos os dados copiados
length - número de elementos que serão copiados
Este métodos pode gerar 3 tipos de exceção:
- IndexOutOfBoundsException - qualquer tentativa fora dos limites dos arrays
- ArrayStoreException - se os tipos forem incompatíveis
- NullPointerException - se algum dos arrays for nulo
Vamos ver um exemplo:
public class ExemploCopiaArray {
public static void main(String[] args) {
int[] intArray = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
// declara a cópia do mesmo tamanho
int[] intCopia = new int[intArray.length];
// copia os dados de um para outro
System.arraycopy(intArray, 0, intCopia, 0, intArray.length);
for(int i = 0; i < intCopia.length; i++)
System.out.println(intArray[i] + " = " + intCopia[i]);
}
}
Nenhum comentário:
Postar um comentário