Arrays em Java 1
Agenda O que é um array Declaração de um array Instanciação de um array Acessando os elementos de um array O tamanho de um array (length) Arrays multi-dimensionais 2
O que é um Array? 3
Introdução Suponha que tenhamos três variáveis do tipo int com identificadores diferentes para cada variável Como você pode observar, seria uma tarefa chata inicializar e usar, digamos, 1000 variáveis, especialmente se elas estiverem sendo usadas com o mesmo propósito 4
Introdução Em Java e em outras linguagens de programação, existe uma estrutura de dados que permite usar uma única variável para armazenar e manipular de forma mais eficiente uma lista de dados. Esse tipo de variável é chamada de array. Um array armazena vários itens de dados de um mesmo tipo, em um bloco contíguo de memória, divididos em slots 0 1 2 num 1 2 3 5
Declaração de um Array 6
Declarando Arrays Para declarar um array, escreva o tipo dos dados, seguido pelo abre e fecha colchetes [], seguido pelo nome do identificador, Exemplo: int[] c; ou int c[]; 7
Instanciação de um Array 8
Instanciando um Array Depois de declarar o array é preciso instanciá-lo e especificar o seu tamanho usando um método construtor. (Um array é um objeto!) Definições Instanciação Alocação de espaço em memória para o objeto Construtor Em Java é necessário um construtor para instanciar um objeto. Um construtor é um método que tem a finalidade específica de criar um dado objeto 9
Instanciando um Array Para instanciar (ou criar) um array, escreva a palavra reservada new seguida pelo tipo de dados, seguida pelos colchetes contendo o número de elementos que você deseja que o array armazene. Exemplo: que também pode ser escrito como: 10
Instanciando um array Nome do array (observe que todos os elementos do array têm o mesmo nome, c) índice do elemento no arrayc c[ 0 ] c[ 1 ] c[ 2 ] c[ 3 ] c[ 4 ] c[ 5 ] c[ 6 ] c[ 7 ] c[ 8 ] c[ 9 ] c[ 10 ] c[ 11 ] -45 6 0 72 1543-89 0 62-3 1 6453 78 11
Instanciando um Array Você também pode instanciar um array inicializando-o diretamente com os dados Exemplo: Esta instrução declara e instancia um array de inteiros com cinco elementos (inicializados com os valores 1, 2, 3, 4 e 5) 12
Um programa exemplo 13
Acessando os elementos de um Array 14
Acessando os elementos de um Array Para acessar os elementos do array você usa um número chamado de índice do array índice atribuído a cada elemento do array para permitir ao programa acessar um membro individual do array começa com zero e continua seqüencialmente com números inteiros até o fim do array Conseqüência: os índices dos elementos do array vão de 0 até (tamanho_do_array 1) 15
Acessando os elementos de um Array Por exemplo, para o array do slide 11, temos: 16
Acessando os elementos de um Array Observações Na falta de inicialização explícita, arrays numéricos são inicializados com zeros Arrays de Strings NÃO são inicializados com espaços em branco nem com strings vazias Você deve inicializar explicitamente todas as posições de um array de Strings. 17
Acessando os elementos de um Array O código a seguir usa um laço for para imprimir todos os elementos em um array 18
Dicas de programação É normalmente melhor inicializar ou instanciar o array logo depois de declará-lo. Por exemplo, a declaração: int arr[] = new int [100]; é preferível a: int arr[]; arr = new int[100]; 19
Dicas de programação Os elementos de um array de tamanho N têm índices que vão de 0 até N-1. Observe que não existe o elemento arr[n]!!!! Tentar acessar a posição N causará uma exceção: ArrayIndexOutOfBoundsException Lembre-se: você não pode redimensionar um array. 20
O tamanho de um Array 21
O tamanho de um Array Para determinar o número de elementos em um array você pode usar o atributo length do array. O atributo length retorna o tamanho do array. Ele pode ser usado escrevendo-se: nome_do_array.length 22
O tamanho de um Array 23
Dicas de programação Ao usar laços for para processar os elementos de um array, use o atributo length do array para determinar o número de iterações do laço. Isto permitirá que o código se ajuste automaticamente se você precisar mais tarde alterar o tamanho do array. Declare as dimensões dos arrays usando constantes. Isso tornará mais fácil modificar o programa mais tarde. final int DIM = 1000; // declara uma constante... int idades[] = new int[dim];??? 24
Percorrendo um array no Java 5.0 Quando não é necessário conhecer as posições em que os elementos de um array foram armazenados, podemos percorrer o array usando um for-each (disponível somente a partir da versão 5 do Java) 25
Arrays de referências Arrays de objetos (ou, melhor dizendo, arrays de referências para objetos) são inicializados com É preciso instanciar cada um dos objetos referenciados pelo array. contas 26
Arrays de referências Se, no exemplo anterior, você tentar fazer: você obterá um erro em tempo de execução, uma vez que não existe uma Conta instanciada na posição zero do arraycontas. 27
Arrays de referências Se agora fizermos: contas Em um array de referências, é preciso instanciar o array e cada um dos objetos referenciados! saldo = 1000 limite = 3000 28
Arrays Multidimensionais Arrays multidimensionais são implementados como arrays de arrays Arrays multidimensionais são declarados colocando-se o número apropriado de colchetes após o nome do array. 29
Arrays Multidimensionais Exemplo: 30
Arrays Multidimensionais Acessar os elementos em um array multidimensional é o mesmo que acessar os elementos em um array unidimensional. Por exemplo, para acessar o primeiro elemento na primeira linha do array caes, escrevemos: System.out.println(caes[0][0]); Isso imprimirá a String terry na tela 31