Академический Документы
Профессиональный Документы
Культура Документы
Uma coleo uma estrutura de dados que permite armazenar vrios objetos.
A coleo em si, tambm, um objeto
ArrayList
Joo Ferreira Robson Godoi ilostmy.info
As operaes que podem ser feitas na coleo variam mas, normalmente, incluem:
Adicionar um objeto dentro da coleo Remover um objeto da coleo Pesquisar (achar a referncia a) um objeto particular da coleo, dada uma chave de pesquisa (ex: cpf) Iterar (ou varrer) os objetos da coleo
Isso significa fazer um loop tratando de cada objeto da coleo, um de cada vez
Tipos de Coleo
Dependendo da forma de fazer as 4 operaes bsicas (adio, remoo, acesso e pesquisa), teremos vrios tipos de colees
Certas operaes tero melhor ou pior desempenho, dependendo do tipo da coleo
Pesquisa de elementos
Descobrir se um certo elemento est na lista Descobrir o ndice de um certo elemento na lista (onde est)
Normalmente implementada como "Tabela Hash" ou "rvore" As operaes mais importantes de uma coleo do tipo Conjunto so:
Adio de elementos
Adicionar um objeto no conjunto (descartando duplicaes)
Remoo de elementos
Remover um objeto presente no conjunto
Pesquisa de elementos
Descobrir se um certo elemento est na coleo
Diz-se portanto que um mapa "mapeia chaves para valores" O Mapa pode ser mantido ordenado ou no (com respeito s chaves) Normalmente implementada como "Tabela Hash" ou "rvore"
Remoo de elementos
Remover um item com chave dada
Pesquisa de elementos
Descobrir se um elemento com chave dada est na coleo
List (Lista)
um conjunto ordenado pelo ndice
Pacote: java.util.List
Set (Conjunto)
um conjunto que d relevncia exclusividade
No permite duplicatas (repetio) Pacote: java.util.Set
Implementaes disponveis
ArrayList - um conjunto ordenado mas no classificado, proporciona iterao e acesso aleatrio com rapidez porque implementa a interface RandomAccess
Escolha natural quando for necessrio usar um vetor redimensionvel que seja eficiente para leitura
Implementaes disponveis
HashSet - um conjunto no classificado e no ordenado, usa o cdigo de hash do objeto que est sendo inserido LinkedHashSet - uma verso ordenada do HashSet, usa o encadeamento duplo para todos os elementos. TreeSet - conjunto classificado (ordem natural dos elementos, ex: ordem alfabtica) e ordenado.
LinkedList - ordenado pela posio dos ndices e seus elementos so duplamente encadeados, fornecendo assim mtodos para insero e remoo do incio ou final.
Muito mais eficiente que os outros para remoo e insero no meio da lista
Map (Mapa)
Possui identificadores exclusivos (par/valor)
Map - cada chave mapeia um objeto especfico Pacote java.util.Map
A nossa escolha...
Vamos trabalhar com ArrayList Essa estrutura pode armazenar dentro dela qualquer tipo de objeto
O controle est a cargo do programador
Implementaes disponveis
HashMap - Conjunto no classificado e no ordenado, permitem uma chave e diversos valores nulos HashTable - igual ao HashMap mas seus mtodos so sincronizados, no permite a existncia de algum componente nulo LinkedHashMap - Mantm a ordem de insero ou opcionalmente na ordem de acesso TreeMap - um conjunto Map classificado.
ArrayList
ArrayList - Declarao
um array dimensionvel, ideal para acesso aleatrio. Pertence ao pacote java.util
Toda classe que usar ArrayList deve importar esse pacote
ArrayList - Instanciao
Instanciao
Ele possui dois construtores
ArrayList(); // cria com 10 posies ArrayList(int capacidadeInicial); // cria com o tamanho passado da capacidadeInicial
ArrayList - Insero
Para inserir um elemento no final de um ArrayList se usa o mtodo add Sintaxe:
Boolean add(Object o)
Exemplo:
contas.add(conta)
Sintaxe:
Object get (int indice)
Sintaxe:
int indexOf (Object elemen)
Exemplo:
Conta c = (Conta) contas.get(4)
Exemplo:
Conta c = (Conta) contas.get(4)
ArrayList - Deleo
Para remover um objeto da lista usa-se o mtodo remove
Remove o elemento de uma posio especificada Automaticamente reorganiza a lista, trazendo todos os elementos uma posio pra esquerda (a partir da deletada) e decrementando os ndices apropriados.
Sintaxe:
Object remove (int indice)
Exemplo:
contas.remove(4)
Voc primeiro tem de achar a posio onde o elemento se encontra, pra depois poder chamar o mtodo de remoo.
Troca o elemento da posio especificada em ndice, como o objeto vindo como parmetro
Object set (int indice, Object elem)
Um Mtodo til
Esse mtodo no pertence ao ArrayList O operador instanceof verifica a classe de um objeto
retorna true ou false
Iterator
uma interface que facilita a iterao pelos elementos de uma coleo A interface especifica apenas 3 mtodos:
public boolean hasNext() public Object next() public void()
Recomenda-se o uso de instanceof antes de um Cast para evitar erros em tempo de execuo Dica: instanceof corresponde a pergunta: do tipo? Exemplo:
boolean teste = c instanceof Conta
Iterator: Desafio
Crie um mtodo Java que seja capaz de iterar por todos os elementos de um ArrayList usando a interface Iterator. Dica: para encontrar o objeto iterator de um ArrayList utilize o mtodo .iterator()
Iterator: Desafio/Resposta 1
Iterator itWhile = al.iterator(); while (itWhile.hasNext()) { String str1 = (String) itWhile.next(); System.out.println(str1); }
Iterator: Desafio/Resposta 2
for (Iterator itFor = al.iterator(); itFor.hasNext();) { String str2 = (String) itFor.next(); System.out.println(str2); }
Exerccio
Troque no sistema bancrio (afetam as classes de coleo e o SistemaBancario), o array esttico para ArrayList
Trocar as declaraes Tirar o tam e o pos Devem ser modificados os mtodos apropriados (ex: iterao, inicializao de colees, etc) Deve ser modificado o mtodo main