Buscar

Estruturas de Dados: Coleções e Vetores

Prévia do material em texto

Coleções	
  em	
  Java	
  
Aula	
  14	
  
O	
  Que	
  são	
  coleções	
  
•  uma	
  coleção	
  é	
  uma	
  estrutura	
  de	
  dados,	
  na	
  
realidade	
  um	
  objeto,	
  que	
  pode	
  armazenar	
  ou	
  
agrupar	
  referências	
  a	
  outros	
  objetos.	
  
•  Exemplos	
  de	
  coleção:	
  
– Listas;	
  
– Sets;	
  
– Mapas.	
  
	
  
– E	
  os	
  vetores	
  para	
  que	
  servem?	
  
Vetores	
  
•  Vetores	
  (listas	
  implementadas	
  com	
  array)	
  são	
  
uma	
  excelente	
  alternaPva	
  
•  …Maasss	
  tem	
  algumas	
  limitações;	
  
•  Adicionar	
  um	
  elemento	
  na	
  primeira	
  posição	
  
de	
  um	
  Vetor,	
  por	
  exemplo,	
  consome	
  muito	
  
tempo,	
  pois	
  temos	
  de	
  deslocar	
  todos	
  os	
  
outros	
  elementos	
  uma	
  posição	
  para	
  a	
  frente.	
  
Vetores	
  
•  Outra	
  limitação	
  com	
  vetores:	
  
•  não	
  podemos	
  redimensionar	
  um	
  array	
  em	
  
Java;	
  
•  não	
  conseguimos	
  saber	
  quantas	
  posições	
  do	
  
array	
  já	
  foram	
  populadas	
  sem	
  criar,	
  para	
  isso,	
  
métodos	
  auxiliares.	
  
	
  
	
  
Vetores	
  
•  Declarando	
  vetores:	
  
	
  
int[]	
  idades;	
  
idades	
  =	
  new	
  int[10];	
  
	
  
Vetores	
  
•  No	
  Java,	
  os	
  índices	
  do	
  array	
  vão	
  de	
  0	
  a	
  n-­‐1,	
  
onde	
  n	
  é	
  o	
  tamanho	
  dado	
  no	
  momento	
  em	
  
que	
  você	
  criou	
  o	
  array.	
  Se	
  você	
  tentar	
  acessar	
  
uma	
  posição	
  fora	
  desse	
  alcance,	
  um	
  erro	
  
ocorrerá	
  durante	
  a	
  execução.	
  
Listas	
  
•  Para	
  manipular	
  uma	
  estrutura	
  sem	
  ter	
  de	
  
alterar	
  todos	
  seus	
  vizinhos,	
  precisamos	
  de	
  
algo	
  que	
  não	
  seja	
  fixo.	
  Uma	
  array	
  é	
  uma	
  
estrutura	
  fixa	
  na	
  memória,	
  precisamos	
  sempre	
  
empurrar	
  todos	
  seus	
  vizinhos	
  para	
  um	
  lado	
  
para	
  conseguir	
  espaço,	
  ou	
  para	
  remover	
  
algum	
  dos	
  elementos,	
  para	
  não	
  deixar	
  espaços	
  
vazios.	
  
Listas	
  
•  Um	
  primeiro	
  recurso	
  que	
  a	
  API	
  de	
  CollecPons	
  traz	
  são	
  
listas.	
  	
  
–  Uma	
  lista	
  é	
  uma	
  coleção	
  que	
  permite	
  elementos	
  duplicados	
  e	
  
mantém	
  uma	
  ordenação	
  específica	
  entre	
  os	
  elementos.	
  
•  tem	
  a	
  garanPa	
  de	
  que,	
  quando	
  percorrer	
  a	
  lista,	
  os	
  
elementos	
  serão	
  encontrados	
  em	
  uma	
  ordem	
  pré-­‐
determinada,	
  definida	
  na	
  hora	
  da	
  inserção	
  dos	
  mesmos.	
  	
  
•  Ela	
  resolve	
  todos	
  os	
  problemas	
  que	
  levantamos	
  em	
  relação	
  
ao	
  array	
  (busca,	
  remoção,	
  tamanho	
  "infinito",...).	
  	
  
–  Esse	
  código	
  já	
  está	
  pronto!	
  UHUUUUU!!!	
  
•  A	
  API	
  de	
  CollecPons	
  traz	
  a	
  interface	
  java.uPl.List,	
  que	
  
especifica	
  o	
  que	
  uma	
  classe	
  deve	
  ser	
  capaz	
  de	
  fazer	
  para	
  
ser	
  uma	
  lista.	
  
Listas	
  
•  Para	
  criar	
  um	
  ArrayList,	
  basta	
  chamar	
  o	
  
construtor:	
  
•  ArrayList	
  lista	
  =	
  new	
  ArrayList();	
  
•  	
  List<String>	
  lista=	
  new	
  ArrayList<>();	
  
•  	
  List<Integer>	
  lista=	
  new	
  ArrayList<>();	
  
•  	
  List<Double>	
  lista=	
  new	
  ArrayList<>();	
  
	
  
Listas	
  
•  Exemplos	
  
•  Para	
  criar	
  uma	
  lista	
  de	
  nomes	
  (String),	
  
podemos	
  fazer:	
  
lista.add("Manoel");	
  
lista.add("Joaquim");	
  
lista.add("Maria");	
  
Listas	
  
•  Exemplos	
  
•  Para	
  criar	
  uma	
  lista	
  de	
  números(String),	
  
podemos	
  fazer:	
  
lista.add(4);	
  
lista.add(10);	
  
lista.add(3);	
  
Listas	
  
•  quantos	
  elementos	
  há	
  na	
  lista?	
  
–  	
  método	
  size():	
  
– Exemplo:	
  
•  System.out.println(lista.size());	
  
Lista	
  
•  Como	
  iterar	
  sobre	
  a	
  lista?	
  
•  Como	
  imprimir	
  todos	
  os	
  elementos	
  de	
  uma	
  
lista?	
  
•  Exemplo:	
  
for	
  (int	
  i	
  =	
  0;	
  i	
  <	
  lista.size();	
  i++)	
  
	
  	
  System.out.println(”imprime:	
  ”+lista.get(i));	
  
}	
  
Listas	
  
•  O	
  que	
  mais	
  elas	
  podem	
  oferecer?	
  
– Adiciona	
  um	
  dado	
  aluno	
  no	
  fim	
  da	
  Lista.	
  
– Adiciona	
  um	
  dado	
  aluno	
  em	
  uma	
  dada	
  posição.	
  
– Pega	
  o	
  aluno	
  de	
  dada	
  posição.	
  
– Remove	
  o	
  aluno	
  de	
  dada	
  posição.	
  
– Verifica	
  se	
  um	
  dado	
  aluno	
  está	
  armazenado.	
  
–  Informar	
  o	
  número	
  de	
  alunos	
  armazenados.	
  
Listas	
  
•  Adiciona	
  um	
  dado	
  aluno	
  no	
  fim	
  da	
  Lista.	
  
•  Exemplo:	
  	
  
	
  lista.add(	
  “Camila”);	
  
	
  
–  Adiciona	
  um	
  dado	
  aluno	
  em	
  uma	
  dada	
  posição.	
  
Exemplo:	
  
	
  lista.add(5,	
  “Gabriela”);	
  
	
  
	
  
Listas	
  
– Pega	
  o	
  aluno	
  de	
  dada	
  posição.	
  
– Exemplo:	
  
– Lista.get(4);	
  
	
  
Listas	
  
– Remove	
  o	
  aluno	
  de	
  dada	
  posição.	
  
– Exemplo:	
  
–  	
  lista.remove(“Raquel”);	
  
–  	
  lista.remove(5)	
  
	
  
Listas	
  
– Verifica	
  se	
  um	
  dado	
  aluno	
  está	
  armazenado.	
  
– Exemplo:	
  
– Lista.contains(“Gabriela”);	
  
Lista	
  
•  Informar	
  o	
  número	
  de	
  alunos	
  armazenados.	
  
•  Exemplo:	
  
•  lista.size();	
  
Lista	
  
•  Como	
  ordenar	
  uma	
  lista?	
  
– Vimos	
  anteriormente	
  que	
  as	
  listas	
  são	
  percorridas	
  
de	
  maneira	
  pré-­‐determinada	
  de	
  acordo	
  com	
  a	
  
inclusão	
  dos	
  itens.	
  Mas,	
  muitas	
  vezes,	
  queremos	
  
percorrer	
  a	
  nossa	
  lista	
  de	
  maneira	
  ordenada.	
  
– A	
  classe	
  CollecPons	
  traz	
  um	
  método	
  estáPco	
  sort	
  
que	
  recebe	
  um	
  List	
  como	
  argumento	
  e	
  o	
  ordena	
  
por	
  ordem	
  crescente.	
  
–  	
  Por	
  exemplo:	
  
– CollecPons.sort(lista);

Continue navegando