Array: Conjunto de variรกveis aninhadas possibilitando a manipulaรงรฃo mais facilitada.
A declaraรงรฃo simples de um array em Java รฉ:
Forma correta:
int [] array = new int[5];
Forma porca:
int array [] = new int[5];
Na forma correta o programador vai analisar o cรณdigo e jรก vai perceber que รฉ um array, na forma porca nรฃo vai estar muito claro que a variรกvel รฉ um array, olhando rapidamente a variรกvel parece do tipo int. ร importante deixar claro que ambas compilam.
Um detalhe muito importante!
Na declaraรงรฃo de um array, รฉ importante que usemos a sempre os [] logo apรณs o tipo da variรกvel, pois se declararmos depois se houver uma variรกvel declarada junto com o outro array, ela serรก do tipo declarado, mas nรฃo serรก um array!
int array [], arrayCamuflado;
Nesse exemplo de cima, a variรกvel arrayCamuflado รฉ um tipo int e nรฃo um array!Pois os colchetes ficaram logo apรณs o identificador e nรฃo antes do tipo.
Nesse exemplo abaixo รฉ justamente o contrรกrio, a variรกvel arrayDeVerdade como o prรณprio nome diz, tambรฉm รฉ um array pois os colchetes foram declarados apรณs o tipo:
int[] array , arrayDeVerdade; int[][] array [], arrayDeVerdade; // Nesse caso a variรกvel //arrayDeVerdade terรก duas dimensรตes([][]), //o terceiro colchete รฉ vรกlido apenas pra variรกvel array.
Matriz no Java:
Forma correta:
int [][] matriz = new int [2][2]; int [][][][][] matrizX = new intย [7][7][7][7][7]
Forma porca:
Integer array7[][] = new Integer[2][50]; int[] matriz [] = new int [2][]; // Tambรฉm compila perfeitamente
No Java os Arrays bidimensionais ou de mais dimensรตes, sรฃo na verdade arrays de arrays, ou seja os arrays guardam referรชncias uns dos outros.
A declaraรงรฃo a seguir tambรฉm รฉ vรกlida:
int[] matriz [] = new int [2][];
Outra regra extremamente importante: Os arrays sรณ podem ser inicializados em seu รญndice quando forem instanciados. Por exemplo:
Vรกlido:
int [] array = new int[5];
Invรกlido:
int [5] array = new int [5];
Tambรฉm รฉ possรญvel usar polimorfismo nos arrays:
Considerando que a classe Animal รฉ pai de Dog:
Animal [] animais = new Dog [5];
Lembre-se, todas as variรกveis do tipo array sรฃo inicializadas com o valor padrรฃo quando declaradas, nรฃo importando ser variรกveis de instรขncia (atributos) ou variรกveis locais de mรฉtodos, nรฃo importa onde:
| Tipo | Valor padrรฃo |
| variรกvel de referรชncia de objeto | null |
| byte, short, int, long | 0 |
| float, double | 0.0 |
| boolean | false |
| char | /u0000′ |
Arrays anรดnimos
Pode-se utilizar os Arrays inicializando-os diretamente instanciando-os como Arrays anรดnimos, instanciar de forma anรดnima รฉ instanciar de forma que nรฃo seja preciso armazenar a instรขncia em outra variรกvel, รฉ รบtil quando jรก sabemos que vamos utilizar somente uma vez, pois apรณs o uso o objeto ficarรก inacessรญvel:
new int [] {5,6,7};
Inicializaรงรฃo do array diretamente em uma variรกvel
int [] array = {4,6,7,7};
int [] array = new int [] {5,6,8,9};
A atribuiรงรฃo de um Array para outro deve ser feita se e somente se as dimensรตes forem iguais e seus tipos forem iguais ou covariantes (subclasses):
Double [] array = new Double [5]; Object [] objects = new Integer[5]; // Aqui รฉ aplicado o polimorfismo, รฉ perfeitamente vรกlido pois Integer รฉ um Object, todas as classes sรฃo. array = objects; // Invรกlido, Integer nรฃo รฉ um Double.
Atribuiรงรฃo vรกlida:
Booleanย [][] array = new Boolean[5][50]; Boolean [][] array2 = new Boolean[5][77]; array =ย array2;
Referรชncia: SCJP 6 Kathy Sierra







