Aula 16: Utilitários Padrões.

Propaganda
Utilitários padrões
O ambiente Java oferece várias interfaces e
classes utilitárias padrão no pacote java.util:
 Enumeration: Uma interface que retorna objetos que
enumeram um conjunto de valores.
 Vector: Um vetor de objetos dimensionado
dinamicamente.
 Stack: Uma extensão de Vector que adiciona métodos a
uma pilha básica.
 Dictionary: Uma classe abstrata para algoritmos que
fazem o mapeamento de chaves em valores.
 Hashtable: Uma implementação de Dictionary.
 Properties: Uma extensão de Hashtable.
Enumeration
Maioria dos conjuntos de classes utiliza a
interface Enumeration como um meio de
recorrer os valores em um conjunto.
A interface Enumeration declara dois
métodos:
 public abstract boolean hasMoreElements()
 public abstract Object nextElement()
O método nextElement() lança
NoSuchElementException se não houver
mais elementos.
Exemplo
Enumeration e = table.elements( );
while (e.hasMoreElements( ))
fazerAlgoCom(e.nextElement( ));
Vector
A classe Vector oferece um array
redimensionável de Object.
Os itens podem ser adicionados ao início,
meio e fim de um vetor.
Vector é útil quando não se sabe o
número máximo de objetos de que
precisará armazenar na criação do
conjunto.
Vector
Existem três tipos de métodos em Vector:
 Métodos para modificar o vetor.
 Métodos para obter valores fora do vetor.
 Métodos para gerenciar como o vetor crescerá
quando precisar de mais capacidade.
O construtor padrão (ser argumentos) cria
um objeto Vector que utiliza
gerenciamento de capacidade padrão.
Vector - métodos
removeElementAt (int indice)
insertElementAt (Object obj, int indice)
addElementAt(Object obj)
removeElement(Object obj)
removeAllElements ( )
elements( )
Vector - métodos
firstElement( )
lastElement( )
size( )
isEmpty ( )
Vector ( )
Vector (int capacidadeInicial)
Vector - exemplo
Vector itemsOrdered = new Vector ( );
Item nextItem = new Item();
Item stateTax = new Item();
Item shipping = new Item();
itemsOrdered.addElement(nextItem);
itemsOrdered.addElement(stateTax);
itemsOrdered.addElement(shipping);
Stack
Stack estende Vector para adicionar
métodos para uma simples pilha (LIFO).
push coloca um objeto na pilha.
pop remove o elemento do topo da pilha.
peek retorna o item do topo sem removêlo.
empty retorna true se a pilha estiver
vazia.
Hashtable
A tabela hash é um mecanismo comum de
armazenamento do par chave/elemento.
A classe HashTable implementa a interface
Dictionary.
Aumentar uma tabela envolve fazer gerar
novo hash para cada elemento na tabela.
A geração de códigos de hash a partir das
chaves.
Hashtable
Hashtable admite estes métodos:
 boolean containsKey(Object chave)
 boolean contains(Object elemento)
 void clear( )
 Object clone( )
 Hashtable( )
 Hashtable(int capacidadeInicial)
Properties
Um outro par chave/elemento comum é
uma lista de propriedades.
A lista consiste em nomes de strings e
elementos de string associados.
A classe Properties estende Hashtable.
Utiliza-se todos os métodos Hashtable
para manipulação de uma lista de
propriedades.
Properties
String getProperty(String chave)
Properties()
save(OutputStream sai, String cabec)
load(InputStream ent)
Enumeration propertyNames()
list(printstream sai)
Download