Vous êtes sur la page 1sur 6

Programao I Java: Arrays

1 Introduo
O computador torna se poderoso quando trabalha com estrutura de dados. Estrutura de dados uma coleco organizada de dados relacionados. Um objecto uma estrutura de dados que composta por variveis de instncia (atributos) e mtodos (comportamento). Existe ainda uma estrutura de dados bsico e importante embutido em todas as linguagens de programao, Arrays. Array uma estrutura de dados que consiste numa lista de itens (elementos) do mesmo tipo sendo este tipo, tipo primitivo ou de referncia.

2 - Arrays em Java
Um Array nada mais de um a sequncia ordenada, de valores do mesmo tipo, cada um na sua prpria caixinha. Ou seja, podemos ter um Array de int, um Array de String, ou um Array de double, mas no podemos ter um Array que mistura int com String. Um Array um objecto, ento sempre vive no Heap (memoria de armazenamento de referncia da JVM). Num diagrama de pilha (memoria de execuo da JVM), poderemos visualizar Arrays da seguinte forma, supondo que temos o seguinte cdigo, dentro do mtodo main. (Vamos aprender o sintaxe bem na prxima seco).
int[] numeros = {2, 5, 7}; String[] nomes = {"Joao", "Elisia"}; 2 5 7

numeros nomes

Joao

Elisia

Regras de Arrays Um Array um objecto, e assim sendo, pode ser null (Palavra Reservada) Um Array tem um tamanho fixo de entre zero e n posies O tamanho de um Array determinado no momento da sua criao e nunca mais pode-se alterar O tamanho do Array sempre pode-se consultar atravs da varivel de instncia length Um Array com zero posies tambm chamado vazio, mas diferente de ser null A primeira posio num Array e indicado por 0, a segunda posio por 1, e assim por diante O tipo de um Array, indica qual tipo de valor ele pode conter, e determinado no momento da sua criao, no podendo ser alterado depois. Convenes de Arrays Para fazer lembrar que ele contm mltiplos itens, o nome de uma varivel que aponta para um Array, tipicamente e na forma plural. Em ingls e portugus, naturalmente isto quer dizer que o nome termina com a letra 's', por exemplo 'numeros'.

Elaborado por Eng. Ivan Guambe

17 de Setembro de 2008

Programao I Java: Arrays

3. Criao e Manipulao de Arrays


Agora vejamos a sintaxe de mexer Arrays na linguagem Java. Declarao de Arrays Para declarar uma varivel do tipo Array, usamos o sintaxe <tipo> <nome> normal, s que o tipo deve ser seguido pelos smbolos [] (parnteses rectos). Veja alguns exemplos:
int[] numeros; //um array de int String[] nomes; //um array de String double[] notas; //um array de double

Os Arrays acima sero nulos, ento era melhor aproveitar do momento de declarao para imediatamente criar um Array no Heap, a ser referenciada pela varivel. Note que usamos a palavra-chave new, mas est seguida no por um construtor mas sim por o tamanho do novo array, dentro de []...
int[] numeros = new int[5]; //array com 5 posies String[] nomes = new String[3]; //array com 3 posies double[] estudantes = new double[8]; //array com 8 posies

Os Arrays acima tero todas as posies "zeradas" (no caso de um int[]) ou apontadas para null (no caso de String[], porque objecto e no primitivo). Mas as vezes, til criar um Array j preenchido com valores, e por isso existe uma terceira opo de declarao, que somente prtica para Arrays pequenas...
int[] numeros = {2, 5, 7}; //array de 3 posies,inicializadas para 2, 5, e 7 String[] nomes = {"Joao", "Elisia"}; //array de 2 posies: "Joao", "Elisia" double[] estudantes = { 24.9, 90.3}; //array de 2 posies,

Consulta de Arrays Para consultar o valor guardado numa certa posio num array, basta indicar a posio desejada, dentro de parnteses rectas: <nome do array> [posio] Podemos ver isto, continuando o ltimo exemplo de cima...
System.out.println(numeros[2]); //vai imprimir: 7 System.out.println(nomes[0]); //vai imprimir: Joao System.out.println(notas[1]); //vai imprimir: 90.3

Cuidado! Se voc indicar uma posio que no existe no Array, o programa vai compilar, mas quando for executado vai dar um erro ArrayIndexOutOfBoundsException. Isto porque Java no consegue aceder a uma caixinha que de facto no existe! Por exemplo, o cdigo a seguir, dar erro:

Elaborado por Eng. Ivan Guambe

17 de Setembro de 2008

Programao I Java: Arrays


//array tem s 3 posies (0, 1, 2), ento pos. 3, 4 etc. nem existem! System.out.println(numeros[3]);

Alterao de Arrays J aprendemos que no podemos alterar o prprio Array, uma vez que foi criado (ou seja, o nmero de caixinhas, tamanho do Array). Mas bem possvel alterar os contedos de qualquer caixinha, quando quisermos. Basta usar o operador de atribuio =, colocando no lado esquerdo, a posio no Array desejado, e no lado direito, o novo valor a ser atribudo. <nome do array> [posio] = <novo valor> Por exemplo:
System.out.println(nomes[0]); //vai printar: Joao nomes[0] = " LL Cool J "; System.out.println(nomes[0]); //printar: LL Cool J System.out.println(numeros[2]); numeros[2] = numeros[2] * 3; System.out.println(numeros[2]); //vai printar: 7 //vai printar: 21

4. Percorrendo um Array
Uma tarefa muito comum percorrer todos os itens (que tambm so chamados de elementos) num Array, para fazer alguma manipulao, consulta ou controle de cada um. Basta comear na posio 0, e ir at a ltima posio (que sempre igual ao tamanho do Array, menos um). Uma maneira de fazer isto com um ciclo while a outra, ligeiramente mais simples, com o sintaxe alternativo de um ciclo for. Usando while para percorrer um Array O algoritmo para utilizar while para esta tarefa simples... 1. Inicializar uma varivel de tipo int, para guardar nossa posio actual no Array 2. Enquanto esta varivel no exceder a ltima posio no Array 2.1. Aceder ao valor na posio no Array, correspondendo ao nosso int 2.2. Incrementar o valor do int por um Vamos ver um exemplo disto, supondo que j temos o Array nomes declarado acima:
int pos = 0; while(pos < nomes.length) { System.out.println(nomes[pos]); pos++; }

Este programa vai imprimir o seguinte output na consola: Joao Elisia Elaborado por Eng. Ivan Guambe

17 de Setembro de 2008

Programao I Java: Arrays

Usando for para percorrer um Array - estilo antigo Porque esta tarefa to comum, existe uma outra palavra-chave, for , que permite um sintaxe simplificado, com toda a "burocracia" concentrada dentro dos parnteses iniciais, separado por ; (ponto e virgula). Contudo, o algoritmo fundamental o mesmo....
for(int pos = 0; pos < nomes.length; pos++) { System.out.println(nomes[pos]); }

Este programa vai imprimir exactamente o mesmo output na consola: Joao Elisia Usando for para percorrer um Array - estilo novo Note que o estilo acima considerado antigo porque funciona em todas as verses de Java. Muitos programadores reclamaram que este estilo ainda muito trabalhoso para uma tarefa to comum, portanto no Java 1.5 SUN introduziu uma sintaxe alternativa e mais fcil. Aqui, no existe o int para guardar a posio actual, porque Java sozinha atribui uma varivel com o valor da posio certa. Ento o algoritmo fica: 1. Declarar a varivel que conter o elemento actual do Array 2. Separado por : (dois pontos), indicar o Array a ser percorrido 2.1. Dentro do corpo do for, aceder a varivel declarada no passo 1
for(String nome : nomes) { System.out.println(nome); } //1, 2 //2.1

Recomenda-se o uso deste novo estilo sempre que for possvel, mas o programador deve ser ciente que existem muitas empresas, instituies e produtos que tem cdigo escrito numa verso de Java anterior ao 1.5, pelo que ainda usam o estilo antigo.

5. Vantagens e Desvantagens de Arrays


O Array a estrutura de coleco mais bsica em Java, e embora seja essencial para qualquer programador conhecer como o utilizar, nem sempre a melhor soluo. Vantagens No tem mtodos ou mecanismos complicados a aprender - basicamente o sintaxe dos parnteses rectas [], e a varivel de instncia length Porque guarda os seus contedos num espao contguo em memria, em certas situaes que exigem "alta performance" pode ser extremamente rpido Desvantagens O seu tamanho fixo, que significa que chato usar em situaes em que o nmero de elementos no for previsvel em avano, ou quando tem que depois remover um elemento No tem mtodos prprios para fazer, por exemplo, tarefas comuns tal como devolver uma subsequncia dos valores entre certas posies Elaborado por Eng. Ivan Guambe 17 de Setembro de 2008

Programao I Java: Arrays

Elaborado por Eng. Ivan Guambe

17 de Setembro de 2008

Programao I Java: Arrays

6 - Exerccio
Escrever um pequeno programa que cria um Array de String, preenche-o com valores introduzidos pelo teclado, e depois imprime estes valores no teclado, na ordem inversa.

Elaborado por Eng. Ivan Guambe

17 de Setembro de 2008

Vous aimerez peut-être aussi