Estrutura de dados em Java Collection Framework Pacote java.util. Uma coleção é um objeto que representa um grupo de objetos. Um “Collection Framework” é uma arquitetura unificada para representar e manipular coleções independentes dos detalhes de sua implementação. É composta de Interfaces e implementações. Hierarquia de interfaces Interfaces são tipos de dados abstratos. As interfaces permitem que as coleções sejam manipuladas independentemente dos detalhes das suas representações. Implementações São implementações concretas das coleções. Implementação Classes JAVA Set (conjuntos) HashSet, LinkedHashSet, TreeSet, EnumSet List (listas) Vector, Stack, LinkedList, ArrayList Queue (filas) PriorityQueue Map HashTable, HashMap, LinkedHashMap, WeakHashMap, IdentityHashMap, TreeMap ArrayList Implementa uma lista linear representada por contigüidade física. Métodos Construtores • • • ArrayList() ArrayList(Collection c) ArrayList(int capacidadeInicial) Outros métodos int size() Retorna a quantidade de nodos da lista. Ex: lista.size(); void add(Object obj) Adiciona o objeto no final da lista. Ex: lista.add(nome); Object get (int indice) Retorna o objeto armazenado na posição determinada pelo índice. Utilizar cast ao atribuir o objeto para uma variável. Ex: nome = (string) lista.get(indice); Object set(int indice, Object nodo) Altera o nodo localizado na posição determinada pelo índice. Retorna o objeto antigo. Ex: nomeAnt = (string) lista.set(indice,novoNome); Object remove(int indice) Remove o nodo localizado na posição determinada pelo índice. Retorna o objeto removido. Ex: nome = (string) lista.remove(indice); boolean contains(Object obj) Retorna true se o objeto existe na lista e false caso contrário. A comparação é executada pelo método equals. Ex: lista.contains(nome); Boolean remove(Object obj) Remove da lista o nodo considerado igual ao passado como argumento. A comparação é executada pelo método equals. Retorna true se a remoção foi executada com sucesso e false caso contrário. Ex: lista.remove(nome); Iterator iterator() Retorna um iterator da lista. Ex: Iterator it = lista.iterator(); while(it.hasNext()) { System.out.println(it.next()); } Exemplo Crie uma lista de nomes. Descrição: O programa deve solicitar a quantidade de nomes a serem armazenados. Na seqüência deve-se armazenar cada um dos nomes. Após será mostrado as seguintes operações: • • • • • • • 0 – Fim 1 – Exibe Todos (for) 2 – Altera 3 – Remove (por índice) 4 – Verifica existência 5 – Remove (por nome) 6 - Exibe todos (Iterator)