Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf ·...

66
Coleções Avançadas Programação Orientada a Objetos Java Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Transcript of Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf ·...

Page 1: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Coleções Avançadas

Programação Orientada a Objetos Java

Prof. Anselmo Cardoso Paiva

Prof. Geraldo Braz Junior

Page 2: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Objetivos Aprender como o conceito de coleção

pode ser expresso de forma genérica

Examinar a interface de três tipos diferentes de coleções:◦ Listas◦ Conjuntos◦ Mapas

Apresentar a finalidade de cada uma das interfaces chave e saber que coleção selecionar com base em um determinado requisito

2

Page 3: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Motivação Saber trabalhar bem com coleções é um

requisito fundamental para qualquer programador, pois objetos possuem relacionamentos entre si

As coleções apresentam uma excelente implementação dos conceitos de orientação a objetos o que permitem que elas seja altamente reutilizáveis e fáceis de usar

3

Page 4: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

O que são coleções? São estruturas de dados que fornecem um

conjunto bem definido de classes e interfaces do pacote java.util que agregam grupos de objetos como unidade simples (listas, conjuntos e mapas)

A coleção é, em si, um objeto também

4

Page 5: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

O que são coleções? São estruturas de dados comuns:

Vetores, Listas, Conjuntos, Pilhas, Árvores binárias, Tabelas Hash

As coleções não armazenam tipos primitivos. Para manipulá-los é necessário envolvê-los nas classes empacotadoras (wrappers – Integer, Double, ...)

5

Page 6: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Coleções As Coleções são compostas de três partes:

Interfaces: Possibilitam manipular as coleções independentes de sua implementação fornecendo uma interface uniforme

Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas de dados reutilizáveis

Algoritmos: métodos reutilizáveis para buscar, classificar e remover objetos em uma coleção

6

Page 7: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Tipos de Coleções Dependendo da forma de fazer as 4 quatro

operações básicas (adição, remoção, acesso e pesquisa), temos vários tipos de coleções, onde:

Certas operações poderão ter um desempenho melhor ou pior

Certas operações poderão ter restrições ou funcionalidade especial

7

Page 8: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Tipos de Coleções Existem dois tipos de coleções em Java: as

que implementam a Interface Collection e os mapas, que implementam Map

A interface Collection possui duas subinterfaces:◦ List – representa uma lista de itens◦ Set – representa um conjunto (os itens não

podem se repetir)

A interface Map implementa uma tabela Hash - compostos de chaves + valor◦ SortMap - mapa ordenado

8

Page 9: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Tipos de Coleções

9

Page 10: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Interface Collection Fornece dois métodos fundamentais

boolean add(Object obj) retorna true se a inclusão alterou a coleção

Exemplo: ao tentar incluir um objeto em um conjunto (Set) , se o objeto já existir será retornado false, pois conjuntos não aceitam valores duplicados

Iterator iterator() retorna um objeto que implementa a interface

Iterator que pode ser utilizado para percorrer os objetos na coleção

10

Page 11: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Interface Iterator Encapsula a navegação dos elementos de

uma coleção. Suporta acesso unidirecional e a remoção do objeto corrente

Esta interface fornece três métodos fundamentais Object next()

boolean hasNext()

void remove()

11

Page 12: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Interface Iterator Com o método next() é possível examinar

os elementos da coleção. Entretanto se for atingido o fim da coleção, será lançado uma exceção “não verificada” NoSuchElementException

Deve-se chamar o método hasNext() para resolver este problema

Por que o método remove() faz parte da interface Iterator ?

Por motivo de eficiência, pois permite eliminar um objeto – recuperado através do método next() – ao examiná-lo

12

Page 13: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Interface Iterator É inválido chamar remove() se ele não for

precedido de uma chamada a next(). Caso tente fazer isto será lançado um IllegalStateException

Exemplo: eliminando o primeiro elemento

Iterator it = c.iterator();

it.next(); //recupera o primeiro elemento

it.remove(); //agora, remove-o

13

Page 14: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Outros métodos de Collection int size()

retorna o tamanho da coleção

boolean isEmpty()

indica se a coleção está vazia ou não

boolean remove(Object obj)

retorna true se o objeto passado como parâmetro foi removido, false caso contrário

14

Page 15: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Outros métodos de Collection boolean addAll(Collection outro)

faz a união de duas coleções

15

Page 16: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Outros métodos de Collection boolean removeAll(Collection outra)

remove todos os elementos dessa coleção que são iguais aos elementos da outra coleção Parâmetro: outra – indica os elementos a serem removidos

Só retorna falso se não for removido nenhum elemento

16

Page 17: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Outros métodos de Collection

17

Page 18: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Outros métodos de Collection boolean retainAll(Collection outra)

remove todos os elementos dessa coleção que não são iguais a um dos elementos da outra coleção

Parâmetro: outra – indica os elementos a serem mantidos

18

Page 19: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Outros métodos de Collection void clear()

Apaga todo o conteúdo da coleção

Object [] toArray()

retorna um array dos objetos da coleção

19

Page 20: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Características das Coleções Pode ser armazenado qualquer objeto na

coleção

Não aceitam tipos primitivos (mas podem ser empacotados utilizando uma classe wrapper)

20

Page 21: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Características das Coleções

21

Page 22: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Solução para o problema anterior

Utilizar o padrão de projeto “Delegação”

22

Page 23: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Collections utilizando Generics (Java 5)

Collection<E>

O parâmetro E parametriza o tipo de elemento armazenado na coleção

23

Page 24: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

A Hierarquia de classes para coleções

24

Page 25: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

A Hierarquia de classes para Mapas

Mapa é um tipo especial de coleção que armazena pares de objetos (chave + valor)

25

Page 26: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Classes que implementam ListArrayList, LinkedList, Vector

Page 27: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

List Uma lista é uma coleção de elementos

dispostos numa ordem linear, onde cada elemento tem um antecessor (exceto o primeiro) e um sucessor (exceto o último)

Normalmente implementada como "Array" (Vector, ArrayList) ou "Lista Encadeada" (LinkList)

Todas as três implementações são ordenadas (pode-se visitar todos os elementos em uma ordem não aleatória)

Uma Lista pode ser mantida classificada ou não

27

Page 28: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Listas Operações mais importantes de uma

coleção do tipo Lista:

Adicionar um elemento em qualquer lugar da lista, fornecendo o índice desejado add(int indice, Object obj)

28

Page 29: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Listas Remover um elemento presente em

qualquer lugar da lista, fornecendo o índice desejado

Object remove(int indice)

Caso o índice seja inválido será lançada uma exceção do tipo IndexOutOfBoundsException

29

Page 30: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Listas Acesso aos elementos

Obter o elemento de qualquer posição da lista, fornecendo o índice desejado Object get(int indice)

Iterar sobre os elementos Iterator iterator()

Pesquisa de elementos

Descobrir o índice de um elemento na lista int indexOf(Object o)

Obter o número de elementos da coleção int size()

30

Page 31: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

A classe ArrayList Escolha natural quando for necessário usar

um vetor redimensionável

Implementado internamente com vetores

Dar suporte a acesso aleatório rápido

Esta lista é ideal quando precisar de interações rápida e não pretender executar muitas inserções e remoções

31

Page 32: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

ArrayList - Exemplo

32

Page 33: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

LinkedList Implementa uma lista duplamente

encadeada

Fornece novos métodos (além dos obtidos na interface List) para implementar pilhas ou filas

void addFirst(Object o)

void addLast(Object o)

Object getFirst( )

Object getLast( )

33

Page 34: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

LinkedList Muito mais eficiente que ArrayList para

remoção einserção no meio da lista, onde apenas o encadeamento em torno do elemento precisa ser atualizado

Também é ideal para acesso seqüencial

34

Page 35: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

LinkedList

35

Page 36: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

LinkedList Quando se deseja inserir em uma posição

especifica da lista precisamos de um iterador. O problema é que a interface Iterador não fornece um método add()

Solução: É fornecida na sub interface ListIterator que contém o método add()

Ao contrario de add em Collection esse método não retorna um valor boolean, pressupõem que a operação sempre tem sucesso

36

Page 37: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

LinkedList

37

Page 38: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Classes que implementam Conjunto HashSet, LinkedSet e TreeSet

Page 39: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Conjuntos Dá importância a exclusividade

Um conjunto é uma coleção que não possui elementos duplicados

O método equals() determina se dois objetos são iguais

Não há noção de "ordem dos elementos"

O Conjunto pode ser mantido ordenado ou não

Normalmente implementada como "Tabela Hash” (HashSet, LinkedHashSet, TreeSet)

39

Page 40: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Conjuntos Operações mais importantes de uma

coleção do tipo Conjunto:

Adição de elementos (descartando duplicações) boolean add(Object): só adiciona o elemento se

ele já não estiver presente (usa equals() para saber se o objeto é o mesmo)

Remoção 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 coleção40

Page 41: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Conjuntos Indagar sobre atributos

Obter o número de elementos

Como se vê, as operações são semelhantes, embora diferentes, daquelas para uma Lista

41

Page 42: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

HashSet É um conjunto não-ordenado e não-

classificado baseado em uma tabela Hash

Quando utilizar ?

Quando quiser um conjunto sem duplicatas e não for necessário uma ordem na interação

42

Page 43: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Tabelas Hash É uma das melhores maneiras de

armazenar informações para pesquisa rápida

Armazena informações utilizando um cálculo especial no objeto para escolher a localização na tabela para armazená-lo

Para recuperar a informação utiliza-se o mesmo cálculo

43

Page 44: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

HashSet - Construtores HashSet( )

Cria uma tabela hash com 101 depósitos e com um fator de carga 0,75

HashSet(int capacidadeIncial)

Constrói um conjunto hash com a capacidade especificada

HashSet(Collection elementos)

Constrói um conjunto de hash e inclui todos os elemetos de uma coleção

44

Page 45: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

HashSet - Construtores HashSet(int capacidadeInicial, float

fatorCarga)

Constrói um conjunto hash com a capacidade e o fator de carga especificados.

45

Page 46: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

HashSet Utiliza o código de hash do objeto que

estar sendo inserido por meio do método hashCode()

O método hashCode() é definido na classe Object◦ Portanto, todo objeto tem um código de

hash padrão

Classes Strings e Wrapper (Integer, Double, ...) redefinem equals() e se tornam adequadas para serem utilizadas como chave em HashSet e TreeSet

46

Page 47: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

TreeSet É semelhante ao conjunto classificado

Garante que os elementos fiquem em ordem crescente de acordo com a sua ordem natural

Construtores

TreeSet() Constrói uma árvore vazia

TreeSet(Collection elementos) Constrói uma árvore e inclui todos os elementos de

uma coleção

47

Page 48: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

TreeSet

48

Page 49: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Comparação Comparação de Objetos Como comparar um objeto qualquer???

Como TreeSet sabe a ordem que você deseja ???◦ Resposta: o TreeSet assume que foi

implementado a interface Comparable

Várias classes da plataforma Java implementam a interface Comparable. Exemplo: String

49

Page 50: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Comparação Comparação de Objetos

Para comparar os seus objetos é preciso implementar a interface Comparable, pois não existe uma implementação padrão em Object

Para implementar o método int compareTo() da interface Comparable, retorne:

Um inteiro menor que zero se objeto atual for “menor” que o recebido como parâmetro

Um inteiro maior que zero se objeto atual for “maior” que o recebido como parâmetro

Zero se objetos forem iguais50

Page 51: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Exemplo

51

Page 52: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Exemplo

52

Page 53: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Classes que implementam a interface MapHashMap, TreeMap, HashTable

Page 54: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Interface Map Coleção que usa objetos para indexar

objetos (chave valor)

Tanto a chave quanto o valor são objetos

Chaves são unívocas (Set)

Valores podem ser duplicados (Collection)

54

Page 55: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Interface Map A chave é utilizada para inserir, remover e

achar um elemento rapidamente

As operações serão baseadas no código hashda chave através da invocação do método hashCode()

Em relação às chaves O Mapa pode ser mantido ordenado (TreeMap) ou não (HashMap)

55

Page 56: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Interface Map – principais métodos

Object put(Object key, Object value)

associa uma chave a um valor no mapa. Se a chave já estiver presente o novo valor substitui o anterior e retorna o valor antigo ou null, caso a chave não esteja presente

corresponde ao método add(Object obj) de Collection

Object get(Object key)

recupera um objeto associado a uma chave ou null caso a chave não exista

56

Page 57: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Interface Map – principais métodos Set keySet()

◦ retorna um conjunto com todas as chaves do mapa. Podemos remover elementos desse conjunto e o valor removido e suas chaves serão removidos do mapa, mas não é possível incluir

Collection values()◦ retorna uma Collection com todos os

valores do mapa. Pode-se remover elementos desse conjunto e o valor removido e suas chaves serão removidos do mapa, mas não é possível incluir

57

Page 58: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Interface Map – principais métodos

Set entrySet()

retorna um conjunto de pares chave-valor contendo objetos representados pela interface interna Map.Entry. Pode-se remover elementos desse conjunto e o valor removido e suas chaves serão removidos do mapa, mas não é possível incluir

58

Page 59: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

public static interface Map.Entry

Interface interna usada para manter pares chavevalor em qualquer implementação de Map

Principais métodos:

Object getKey() - retorna a chave

Object getValue() - retorna o valor dessa entrada

59

Page 60: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

public static interface Map.Entry

60

Page 61: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

HashMap Fornece um conjunto Map não-ordenado e

não-classificado

Quando se precisar de um mapa e não estiver preocupado com a ordem (na interação), então HashMap é a melhor opção. TreeMap e LinkedHashMap adicionam um pouco mais de sobrecarga

61

Page 62: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

HashMap Construtores

HashMap()

HashMap(Map entradas)

HashMap(int CapacidadeInicial)

HashMap(int CapacidadeInicial, float fatorCarga)

62

Page 63: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

HashMap

63

Page 64: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

HashMap

64

Page 65: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

HashMap

65

Page 66: Coleções - Universidade Federal do Maranhãogeraldo/poo/6.1ColecoesAvancadas.pdf · Implementações: São classes concretas que implementam as interfaces. No geral, são estruturas

Outra alternativa as coleções do J2SE

Commons Collections, do projeto Apache Jakarta

Define coleções que são utilizadas por inúmeros softwares do grupo Apache (commons-collections.jar)

66