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)