Buscar

06-Array_ArrayList.pptx

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

25/4/14	
  
1	
  
Array e ArrayList 
Introdução a Programação II 
BCC – DEINFO – UFRPE 
sidney@deinfo.ufpe.br 
Arrays em Java 
•  São objetos (tipo de referência) 
•  Tamanho não muda 
•  Guardam tipos primitivos e de referência 
	
0	
   v_1	
  
1	
   v_2	
  
...	
  
n	
   v_n	
  
Tamanho	
  é	
  
n	
  +	
  1	
  
Declaração e inicialização de 
arrays 
 
int numeros[]; 
Conta contas[]; 
 
int a[] = new int[50]; 
String nomes[] = new String[300]; 
 
	
 
Declaração	
  
sem	
  
inicialização	
  
Declaração	
  e	
  
inicialização	
  
com	
  valor	
  
padrão	
  
Atribuindo valor não padrão 
 
•  Declarando primeiro e inicializando depois 
 
Mostrador mostradores[] = new Mostrador[2]; 
mostradores[0] = new Mostrador(24); 
mostradores[1] = new Mostrador(60); 
	
 
 
Atribuindo valor não padrão 
 
•  Declaração e inicializando simultânea 
 
float cotacoes[] = {1.73f, 1.64f, 1.81f, 1.85f}; 
String tratamento[] = {“Sr.”, “Sra.”, “Dr.”, “Dra.”}; 
 
Tamanho do array 
•  length: atributo que indica o tamanho do array 
•  Índices: de 0 até array.length - 1 
•  Exemplo: inicializando array de quadrados 
	int quadrados[] = new int[tamanho]; 
 for(int i=0; i < quadrados.length; i++) { 
 quadrados[i] = i*i; 
 } 
25/4/14	
  
2	
  
ArrayIndexOutofBound 
•  Exceção que ocorre ao acessar um índice inválido	
char array[] = new char[10]; 
array[0] = ‘a’; 
array[9] = ‘j’; 
... 
array[10] = ‘k’; 
 
ArrayIndexOutofBounds	
  
for especial 
•  Existe um tipo de for que pode ser utilizado para 
varrer arrays e outros tipos iterativos (ex: listas) do 
primeiro ao último elemento 
•  Exemplo: imprimindo todos os elementos do array 
 float cotacoes[] = {1.73f, 1.64f, 1.81f, 1.85f}; 
 for (float cot : cotacoes){ 
 System.out.println(cot); 
 } 
float	
  cot	
  =	
  0;	
  
for	
  (int	
  i=0;	
  i	
  <	
  cotacoes.length;	
  i++)	
  {	
  
	
  	
  cot	
  =	
  cotacoes[i];	
  
	
  	
  System.out.println(cot)	
  
}	
  
Arrays multidimensionais 
	
	
	
int[][] a = { {1,0}, {0,1} }; 
2	
  x	
  2	
  
a	
  [0][0]	
   a	
  [0][1]	
   a	
  [1][0]	
   a	
  [1][1]	
  
Arrays multidimensionais 
int matriz[][] = new int[2][3]; 
 
 
for (int i = 0; i < matriz.length; i++) { 
 for (int j = 0; j < matriz[0].length; j++) { 
 matriz[i][j] = -1; 
 } 
} 
Array	
  de	
  
linhas	
  
Array	
  das	
  
colunas	
  
Passando argumentos na linha de 
comando 
public class AppAnuncio { 
 public static void main (String[] args) { 
 System.out.println(“Anuncio de : ” + args[0]); 
 System.out.println(“Mensagem : ” + args[1]); 
 } 
} 
 
java AppAnuncio “Denis” “Hoje haverá reunião do 
projeto” 
	
Argumentos de uma aplicação 
•  É um array de strings cuja referência é passada 
para o método principal 
 
 public void static main (String[] args) 
•  Se nenhum argumento é passado array tem 
tamanho 0 
 
25/4/14	
  
3	
  
Listando argumentos 
 public class ListandoParametros { 
 public static void main (String[] args) { 
 if(args.length == 0) 
 System.out.println(“0 parametros”); 
 for(int i = 0; i < args.length; i++) { 
 System.out. 
 printf(“Parametro %d = %s \n”, i, args[i]); 
 } 
 } 
} 
ArrayList 
•  Implementa a interface (métodos) de uma lista 
Adicionar, remover, recuperar, concatenar, etc 
•  Utiliza um array internamente 
•  Armazena elementos de apenas um tipo definido na 
declaração da lista 
Exemplo: lista de strings 
ArrayList<String> nomes = new ArrayList(); 
 
nomes.add("João"); 
nomes.add("Pedro"); 
 
if(nomes.contains("Pedro")) 
 nomes.remove("Pedro"); 
 
System.out.println(nomes.size()); 
Tipo	
  da	
  lista	
  
Imprime	
  
tamanho	
  da	
  lista	
  
Adiciona	
  na	
  lista	
  
Se	
  existe	
  na	
  lista	
  
remove	
  
Percorrendo um ArrayList 
 
for (int i = 0; i < nomes.size(); i++) { 
 System.out.println(nomes.get(i)); 
} 
 
for (String nome : nomes) { 
 System.out.println(nome); 
} 
OU	
  
Wrapper 
•  Wrapper são utilizados em OO para representar um 
tipo em contextos onde ele normalmente não 
poderia ser utilizado 
•  Exemplo: não consigo fazer uma lista de inteiros, 
mas consigo fazer uma lista de Integer (que 
empacota inteiros) 
Wrappers para tipos primitivos 
Tipo	
  primi(vo	
   Classe	
  Wrapper	
  
boolean	
   Boolean	
  
char	
   Character	
  
byte	
   Byte	
  
short	
   Short	
  
int	
   Integer	
  
long	
   Long	
  
float	
   Float	
  
double	
   Double	
  
25/4/14	
  
4	
  
Wrapper 
ArrayList<Double> lista = new ArrayList(); 
 
double d = 0.56; 
 
lista.add(d); 
lista.add(1.44376); 
 
double d2 = lista.get(0); 
 
Garbage Collection (GC) 
•  Mecanismo da JVM que remove da memória 
objetos não utilizados 
•  O momento no qual o GC é executado não é 
controlado pelo usuário 
Muitos	
  objetos	
  não	
  
u\lizados!	
  Vou	
  
liberar	
  esta	
  parte	
  da	
  
memória.	
  
Exemplo de objeto sem referência 
	
	
Hora h = new Hora(); 
 
h = new Hora(); 
 
... 
(1)	
  h	
  aponta	
  para	
  
um	
  objeto	
  Hora	
  
(2)	
  h	
  aponta	
  
para	
  outro	
  
objeto	
  Hora	
  
(3)	
  A	
  par\r	
  deste	
  ponto	
  
o	
  GC	
  pode	
  liberar	
  o	
  
espaço	
  u\lizado	
  pelo	
  
1º	
  objeto	
  Hora	
  
Exercício 1 
•  Crie uma cópia da classe LivroNotas da Aula 5 com o 
nome LivroNotasArray 
•  Modifique LivroNotasArray para guarda as notas em um 
array 
–  Tamanho do array é passado no construtor 
–  Remova o atributo somaNotas 
–  Manter métodos adicionarNota e calculaMedia 
•  Incluir os métodos: 
–  public double getMaiorNota() 
–  public double getMenorNota() 
Exercício 2 
•  Crie uma cópia da classe LivroNotasArray do 
exercício anterior e renomeie para 
LivroNotasArrayList 
•  Modifique LivroNotasArrayList para trabalhar com 
ArrayList no lugar de um array

Outros materiais