Em Java, os arrays são uma forma de guardar vários valores do mesmo tipo numa única estrutura. Ao contrário de outras estruturas de dados, os arrays têm um tamanho fixo depois de serem criados. Podes atribuir elementos a um array ou obtê-los a partir dele através de um índice. Os arrays em Java usam indexação a partir do zero: o índice do primeiro elemento é 0, o do segundo é 1, etc.
Eis a sintaxe padrão para inicializar um array:
type[] variableName = new type[size];
O type é o tipo dos elementos do array, que pode ser um tipo primitivo (por exemplo, int) ou uma classe (por exemplo, String).
O size é o número de elementos que este array vai conter (e que não pode ser alterado mais tarde).
Depois de o array ser criado, os elementos são inicializados com os seus valores predefinidos (normalmente 0, false ou null).
// Declare array with explicit size (size is 2)
int[] twoInts = new int[2];
Também podes definir arrays com uma notação abreviada que te permite criar o array e definir os seus valores ao mesmo tempo:
// Two equivalent ways to declare and initialize an array (size is 3)
int[] threeIntsV1 = new int[] { 4, 9, 7 };
int[] threeIntsV2 = { 4, 9, 7 };
Como o compilador já consegue saber quantos elementos o array vai ter, o comprimento pode ser omitido.
Podes atribuir e aceder aos elementos do array através de uma notação de índice entre parênteses retos:
// Assign second element by index
twoInts[1] = 8;
// Retrieve the second element by index and assign to the int element
int secondElement = twoInts[1];
Se tentares aceder a um índice fora dos índices válidos do array, obténs uma IndexOutOfBoundsException.
Podes manipular arrays chamando os métodos ou as propriedades de uma instância de array, ou usando os métodos estáticos definidos na classe Arrays (normalmente só usados em código genérico).
A propriedade length contém o comprimento de um array.
Podes aceder-lhe assim:
int arrayLength = someArray.length;
O Java também disponibiliza uma útil classe utilitária, java.util.Arrays, que tem muitos métodos úteis relacionados com arrays (por exemplo, Arrays.equals).
O Java também suporta arrays multidimensionais, como int[][] arr = new int[3][4];, que podem ser muito úteis.
O facto de um array também ser uma coleção significa que, além de acederes aos valores por índice, podes iterar sobre todos os seus valores com um ciclo for-each:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for(char vowel: vowels) {
// Output the vowel
System.out.print(vowel);
}
// => aeiou
Se quiseres mais controlo sobre os valores a iterar, podes usar um ciclo for:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for (int i = 0; i < 3; i++) {
// Output the vowel
System.out.print(vowels[i]);
}
// => aei