Nsse post iremos apresentar algumas das várias formas de se instanciar um array em Java.
1 – Criando array vazio e preenchendo posteriormente
//Cria o array com 7 posições. É obrigatório a informar o tamanho do arra (no caso, 7)
String[] diasDaSemana = new String[7];
//Adiciona os valores nas posições desejadas.
diasDaSemana[0] = "Domingo";
diasDaSemana[1] = "Segunda";
Essa é talvez a forma mais comum de se criar um array em Java. Algumas considerações ao se criar array dessa forma:
1 – a quantidade de posições do array deve ser informada de antemão. Caso não saiba previamente o tamanho do array talvez seja melhor utilizar uma List;
2 – o array deve ter seu tipo definido no momento da criação;
3 – caso tente inserir um valor em uma posição inexistente (por exemplo na posição 8) será lançada uma exceção.
2 – Instanciar array no momento da declaração já contendo elementos
//cria o array já com os elementos necessários
String[] diasDaSemana = {"Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado" };
3 – Utilizando Arrays.copyOf
String[] diasDaSemana = {"Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado" };
//cria uma cópia do array diasDaSemana, contendo apenas 3 posições (apenas Domingo, Segunda e Terça)
String[] copiaDeDiasDaSemana = Arrays.copyOf(diasDaSemana, 3);
//cria uma cópia do array diasDaSemana, contendo mais que 7 posições (as demais ficarão nulas)
String[] copiaDeDiasDaSemana2 = Arrays.copyOf(diasDaSemana, 3);
O Arrays.copyOf cria uma cópia de um array previamente existente. Ele possui várias sobrecargas com diferentes parâmetros.
4 – Criando o array a partir de uma Lista (ArrayList ou outra)
//dias da semana em uma List
List<String> diasDaSemana = new ArrayList<>(Arrays.asList("Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"));
//cria o array a partir da da lista. Nessa forma é criado um array de Object
Object[] copiaDeDiasDaSemanaComoObject = diasDaSemana.toArray();
//cria o array a partir da da lista, com o tipo especificado, nesse caso, array de String (nesse caso é necessário informar o tamanho do array)
String[] copiaDeDiasDaSemana = diasDaSemana.toArray(new String[7]);