Anda di halaman 1dari 4

Arrays

 Estruturas capazes de armazenar mais


de um valor de mesmo tipo (Primitivo ou
Objeto)
 Unidimensionais ou multidimensionais

Arrays

A posio de cada elemento do array


identificada por um ou mais ndices

Joo Ferreira
Sandra Siebra
ilostmy.info

 Em Java so tipos especiais (Objetos)


 Tm tamanho fixo depois de criados. No
entanto, podem ser criados em tempo de
execuo

Array Unidimensional - Declarao

Conceitos
endereo

Conhecidos tambm como listas simples ou vetores


Forma geral de declarao:

contedo

a uma varivel simples


<Tipo> [ ] <nome_vetor>;
ou
<Tipo> <nome_vetor> [ ];

vetor

b uma varivel unidimensional com

b
0

4 valores, identificados por suas


posio dentro do conjunto: b[0],
b[1], b[2], b[3]

3
0

<Tipo> <nome_vetor> [ ] = new <Tipo> [no_elementos];


ou
<Tipo> [ ] <nome_vetor> = new <Tipo> [no_elementos];

c uma varivel bidimensional com

12 valores, identificados por suas


posio dentro do conjunto:
c[0,0], c[0,1], c[0,2], c[0,3], c[1,0],
c[1,1], c[1,2], c[1,3], c[2,0], c[2,1],
c[2,2], c[2,3],

0,0

Ex: int vetor [ ]; ou int [ ] vetor;


2,0

1,2

Array Unidimensional - Inicializao

Declarao e criao de arrays

 O operador new usado para criar um array


em Java
 Os elementos de um array podem ser dados
bsicos, mas o conjunto formado por eles
um objeto
 Para inicializar o array:
<nome_vetor> = new <Tipo> [no_elementos];

 Sintaxe:
Declarao:
Tipo nomeArray[ ];

Instanciao
nomeArray = new Tipo[tamanho];

Declarao e instanciao juntos:


Tipo nomeArray[ ] = new Tipo[tamanho];

 Exemplos:
int vetor [ ]; ou int [ ] vetor;
vetor = new int [100]; // inicializao em outro local

Exemplos de Arrays

Mais exemplos

 Array deve ser declarado em seguida


int[]
a; //declarao
instanciado

int[] primosPequenos = {2, 3, 5, 7, 11, 13};

double[] x; // outra forma de declarar


Cliente[] clientes;

String[] cores = {"Vermelho", "Azul", "Amarelo"};

// criao e instanciao
int[] a = new int[100];

Primeiro item: a[0]


ltimo item: a[99]
double[] salarios = new double[5];
for (int i = 0; i<5; i++){
salarios[i] = i*1000;
}

int vetor [ ] = new int [100]; // array iniciado na declarao


int vetor [ ] = {1,3,4,5,8,10}; // outra forma de inicializao

String[] nomes = new String[200]

Detalhes

Arrays - Referncia
 Referncias aos elementos de um array
unidimensional

int[] x;

int[] x = new int[2];

int[] x = {2, 4};

null

<varivel> [ndice]

 O primeiro elemento do array tem ndice


0 e o ltimo = tamanho 1
 O comprimento do array pode ser
acessado pela varivel de instncia final
e pblica length
Ex: vetor.length;

Exerccio

Acesso invlido

 Crie uma classe chamada TestaArray


com um mtodo main.
 Declare e instancie um array de inteiros
com 10 posies e preencha o mesmo
com os primeiros 10 nmeros pares.
 Em seguida, faa um lao for para
imprimir o array do primeiro ao ltimo
elemento.
 Tente acessar o elemento indexado com
15 no seu array. O que acontece?

 Acesso a array checado em tempo de


execuo
 Se feito acesso a um elemento
indefinido de um array, gerada uma
exceo:
IndexOutOfBoundsException
String[] nomes = {"Jos", "Joo", "Maria"};
System.out.println(nomes[5]);
Gera um erro em
tempo de execuo

Arrays de Objetos
 Armazenam referncias a objetos de um
determinado tipo
 Devem ser alocados da mesma forma
que arrays de tipos primitivos
 Quando no atribudo explicitamente, o
valor de cada i-simo elemento do array
inicializado com null.

Arrays de Objetos Exemplos


Conta[] contas = new Conta[20];
contas

0 1 2

null

null

contas[0] = new Conta(111,40);


contas

0 1 2

null

Utilizao de arrays no Sistema Bancrio

 Um sistema bancrio deve ser capaz de


armazenar as contas em alguma
estrutura
 Uma classe de armazenamento de
contas pode ser a responsvel pelos
servios de inserir, atualizar, remover e
pesquisar
 A classe se chama ArrayContas e
guarda as contas num array.

Classe ArrayContas - inserir

public void inserir(Conta c){


contas[indice] = c;
indice = indice + 1;
}

19

19

null

Classe ArrayContas
public class ArrayContas{
private Conta[] contas;
private int indice = 0;
private int tam;
public ArrayContas(int tam){
this.tam = tam;
contas = new Conta[tam];
}
}

Classe ArrayContas - mtodo auxiliar


private int procurarIndice(int num) {
int
i = 0;
int
resp = -1;
boolean achou = false;
while ((i < indice) && !achou) {
if (contas[i].getNumero()==num)
resp = i;
achou = true;
}
i = i + 1;
}
return resp;
}

Classe ArrayContas - checando existncia


public boolean existe(int num) {
boolean resp = false;
int i = this.procurarIndice(num);
if(i != -1){
resp = true;
}
return resp;
}

Classe ArrayContas - atualizar

public void atualizar(Conta c){


int i = procurarIndice(c.getNumero());
if (i != -1) {
contas[i] = c;
} else {
System.out.println("Conta nao encontrada");

}
}

Classe ArrayContas - pesquisar


public Conta pesquisar(int num){
Conta resp = null;
if (existe(num)) {
int i = this.procurarIndice(num);
resp = contas[i];
} else {
System.out.println
("Conta nao encontrada");

}
return resp;
}

Classe ArrayContas - remover


public void remover(int num){
if (existe(num)) {
int ind = this.procurarIndice(num);
for(int i=ind; i<indice-1; i++)
{ contas[i] = contas[i + 1];}
contas[indice - 1] = null;
indice = indice - 1;
} else {
System.out.println
("Conta nao encontrada");
}
}

Exerccio
 Baseado na implementao passo a
passo do array de contas, implemente a
classe array de clientes.
Isso possibilitar que o banco possa ter
clientes com conta conjunta

 Dica: note que a implementao quase


um copy and paste. Os mtodos apenas
precisam ser modificados para lidar com
Clientes ao invs de Conta.

Anda mungkin juga menyukai