Sie sind auf Seite 1von 5

Colees

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

Indagar sobre atributos


Obter o nmero de elementos da coleo

Nem toda coleo permite todas as operaes acima

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

Tipos de Coleo - Lista


Uma lista uma coleo de elementos arrumados numa ordem linear, isto , onde cada elemento tem um antecessor (exceto o primeiro) e um sucessor (exceto o ltimo) Normalmente implementada como "Array" ou "Lista Encadeada" A Lista pode ser mantida ordenada ou no As operaes mais importantes de uma coleo do tipo Lista so:
Adio de elementos - Adicionar um objeto em qualquer lugar da lista, fornecendo o ndice desejado Remoo de elementos - Remover um objeto presente em qualquer lugar da lista, fornecendo o ndice desejado Acesso aos elementos
Obter o elemento de qualquer posio da lista, fornecendo o ndice desejado Iterar sobre os elementos

Os trs grandes tipos de coleo so:


Lista tambm chamada seqncia Conjunto Mapa tambm chamado dicionrio

Java d suporte muito bom s colees especificadas acima

Pesquisa de elementos
Descobrir se um certo elemento est na lista Descobrir o ndice de um certo elemento na lista (onde est)

Indagar sobre atributos


Obter o nmero de elementos da coleo

Tipos de Coleo - Conjunto


Um conjunto uma coleo que no possui elementos duplicados No conjunto, no h noo de "ordem dos elementos"
Porm, o Conjunto pode ser mantido ordenado ou no

Tipos de Coleo - Mapas


Um mapa armazena pares (chave, valor) chamados itens
Chaves e valores podem ser de qualquer tipo Elemento e Valor so sinnimos

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)

A chave utilizada para achar um elemento rapidamente


Estruturas especiais so usadas para que a pesquisa seja rpida

Remoo de elementos
Remover um objeto presente no conjunto

Acesso aos elementos


Iterar sobre os elementos

Pesquisa de elementos
Descobrir se um certo elemento est na coleo

Indagar sobre atributos


Obter o nmero de elementos

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"

Tipos de Coleo - Mapas


As operaes mais importantes de uma coleo do tipo Conjunto so:
Adio de elementos
Adicionar um item no mapa (fornecendo chave e valor)

Tipos de Colees em Java


Hierarquia de interfaces fornecida pelo Java:

Remoo de elementos
Remover um item com chave dada

Acesso aos elementos


Iterar sobre os itens

Pesquisa de elementos
Descobrir se um elemento com chave dada est na coleo

Indagar sobre atributos


Obter o nmero de elementos

Observe que o acesso coleo sempre feita conhecendo a chave

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.

Vector - igual ao ArrayList mas seus mtodos so sincronizados


mais lenta sua manipulao

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

Prtico para utilizar os conceitos de pilhas e filas.

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

Declarao: ArrayList nomeArray;


Ex: ArrayList contas;

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)

Ex: contas = new ArrayList(); ou Contas = new ArrayList(20);

Exemplo:
contas.add(conta)

Tambm h um add para adicionar no meio da lista


void add(int indice, Object element)

ArrayList Acesso a uma posio


Para acessar uma posio usa-se o mtodo get
Este mtodo recebe um inteiro e retorna o objeto correspondente a posio dada por este inteiro Se este nmero for fora da faixa de valores vlidos lanada a exceo IndexOutOfBoundsException

ArrayList Localizando um Objeto


Para descobrir a posio de um objeto na lista usa-se o mtodo indexOf
Retorna a posio da primeira ocorrncia do Objeto O objeto tem de estar completamente preenchido Retorna -1 se o objeto no for encontrado

Sintaxe:
Object get (int indice)

Sintaxe:
int indexOf (Object elemen)

Exemplo:
Conta c = (Conta) contas.get(4)

Exemplo:
Conta c = (Conta) contas.get(4)

Todos acesso um ArrayList deve fazer uso de um Cast

Variao do mtodo: ltima ocorrncia


int lastIndexOf(Object elemen)

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.

ArrayList Mtodos Diversos


Checa se a lista est vazia
boolean isEmpty()

Retorna o nmero de elementos da lista


int size()

Sintaxe:
Object remove (int indice)

Para remover todos os elementos da lista


void clear()

Exemplo:
contas.remove(4)

Voc primeiro tem de achar a posio onde o elemento se encontra, pra depois poder chamar o mtodo de remoo.

Para checar se um elemento pertence a lista (retorna true, se o elemento pertencer)


boolean contains(Object elem)

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

Das könnte Ihnen auch gefallen