Please note that this translation of the specification is the result of a java.net community project ( https://jdk5-api-pt-br.dev.java.net/ ). The official version of the specification is the US English language version which can be found at http://java.sun.com/j2se/1.5.0/docs/api/. In case of disputes, the authoritative version of the specification is the original, English document.
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface Map<K,V>
Um objeto que mapeia chaves e valores. Um map não pode conter chaves duplicadas; cada chave pode estar associada no máximo a um valor.
Esta interface substitui a classe Dictionary, que era na verdade uma classe abstrata ao invés de uma interface.
A interface Map fornece três visões de coleção, que permitem que o conteúdo do map seja visto como set de chaves, coleção de valores, ou set de pares chaves-valores mapeados. O ordenamento do map é definido pela ordem cujo iteratores de cada visão retornam seus elementos. Algumas implementações de map, como a classe TreeMap, estipulam garantias especifícas quanto ao seu ordenamento; outros, como a classe HashMap, não o fazem.
Nota: Deve-se tomar muito cuidado caso objetos mutáveis sejam usados como chave. O comportamento do map não é definido se o valor de um objeto for alterado de maneira que afete comparações com equals enquanto o objeto é uma chave no map. Um caso especial desta proibição é que não é permitido para um map conter ele próprio como uma chave. Apesar de ser permitido para um map conter ele próprio como um valor, cuidado extremo é necessário: os métodos equals e hashCode já não serão bem definidos em tal map.
Todas as classes de implementação de map de propósito geral devem fornecer dois consrutores "padrões": um construtor void (sem argumentos) que cria um map vazio, e um construtor com um único argumento do tipo Map, que cria um novo map com o mesmo mapeamento chave-valor de seu argumento. Na verdade, esse último construtor permite ao usuário copiar qualquer map, produzindo um map equivalente de uma classe desejada. Não existe maneiras de forçar essa recomendação (já que interfaces não possuem consrutores) mas todas as implementações de map de propósito geral no JDK serão compatíveis.
Os métodos "destrutivos" contidos nesta interface, ou seja, os métodos que
modificam o map no qual eles operam, são especificados para lançar
UnsupportedOperationException caso o map não suporte a operação. Se
for o caso, esses métodos podem, mas não é requerido, lançar UnsupportedOperationException
se a invocação não surtir efeitos no map. Por exemplo, invocando o método putAll(Map)
em um map não modificável pode, mas não é requerido, lançar a exceção se o map cujo mapeamento
estiver sendo "imposto" for vazio.
Algumas implementações de map possuem restrições quanto à chaves e valores que eles podem conter. Por exemplo, algumas implementações proíbem chaves e valores null, e algumas possuem restrições quanto ao tipo de suas chaves. Tentar inserir uma chave ou valor inválidos lança uma exceção não-checada, no caso NullPointerException ou ClassCastException. Tentar consultar a presença de uma chave ou valor inválidos pode lançar uma exceção, ou pode apenas retornar false; algumas implementações devem exibir o primeiro comportamento e outras o segundo. Mais geralmente, tentar uma operação em uma chave ou valor inválidos cujo resultado não seja a inserção de um elemento inválido no map pode lançar uma exceção ou pode suceder, fica a cargo da implementação. Exceções como essa são marcadas como "opcionais" na especificação para esta interface.
Esta interface é um membro do Java Collections Framework.
Vários métodos nas interfaces de Collections Framework são definidos
em termos do método equals. Por
exemplo, a especificação para o método contains(Object key) diz: "retorna true se, e apenas se este map
contiver um mapeamento para chave k de forma que (key==null ? k==null
: key.equals(k))." Essa especificação não deve implicar que invocando
Map.containsKey com um argumento não nulo key faça com que
key.equals(k) seja invocado para qualquer chave k. Implementações
são livres para efetuar otimizações onde chamadas a equals são evitadas,
por exemplo, para comparar o código hash de duas chaves. (A especificação de
Object.hashCode() garante que dois objetos com códigos hash diferentes
não podem ser iguais.) Mais geralmente, implementações das várias interfaces do
Collections Framework são livres para se beneficiar do comportamento especificado
para os métodos Object, onde o implementador julgar apropriado.
HashMap,
TreeMap,
Hashtable,
SortedMap,
Collection,
Set| Nested Class Summary | |
|---|---|
static interface |
Map.Entry<K,V>
Um map entry (par chave-valor). |
| Method Summary | |
|---|---|
void |
clear()
Remove todos os mapeamentos deste map (operação opcional). |
boolean |
containsKey(Object key)
Retorna true se este map contiver um mapeamento para a chave especificada. |
boolean |
containsValue(Object value)
Retorna true se este map mapeia uma ou mais chaves para o valor especificado. |
Set<Map.Entry<K,V>> |
entrySet()
Retorna uma visão de set dos mapeamentos contidos neste map. |
boolean |
equals(Object o)
Compara o objeto especificado com este map por igualdade. |
V |
get(Object key)
Retorna o valor no qual este map mapeia a chave especificada. |
int |
hashCode()
Retorna o valor de código hash para este map. |
boolean |
isEmpty()
Retorna true se este map não contiver mapeamentos chave-valor. |
Set<K> |
keySet()
Retorna uma visão de set das chaves contidas neste map. |
V |
put(K key,
V value)
Associa neste map o valor especificado com a chave especificada (operação opcional). |
void |
putAll(Map<? extends K,? extends V> t)
Copia todo os mapeamentos do map especificado para este map (operação opcional). |
V |
remove(Object key)
Remove o mapeamento no map para esta chave se houver (operação opcional). |
int |
size()
Retorna o número de mapeamentos chave-valor neste map. |
Collection<V> |
values()
Retorna uma visão de coleção dos valores contidos neste map. |
| Method Detail |
|---|
int size()
boolean isEmpty()
boolean containsKey(Object key)
key - chave cuja presença neste map deve ser testada.
ClassCastException - se a chave for de um tipo não apropriado para
este map (opcional).
NullPointerException - se a chave for null e este map
não permitir chaves null (opcional).boolean containsValue(Object value)
value - valor cuja presença neste map deve ser testada.
ClassCastException - se o valor for de um tipo não apropriado para
este map (opcional).
NullPointerException - se o valor for null e este map
não permitir valores null (opcional).V get(Object key)
Mais formalmente, se este map contiver o mapeamento de uma chave k para o valor v de forma que (key==null ? k==null : key.equals(k)), então este método retorna v; senão retorna null. (No máximo um mapeamento como este deve existir.)
key - chave cujo valor associado deve ser retornado.
ClassCastException - se a chave for de um tipo não apropriado para
este map (opcional).
NullPointerException - se a chave for null e este map
não permitir chaves null (opcional).containsKey(Object)
V put(K key,
V value)
m.containsKey(k) retornar true.)
key - chave com a qual o valor especificado deve ser associado.value - valor a ser associado à chave especificada.
UnsupportedOperationException - se a operação put não
for suportada por este map.
ClassCastException - se a classe da chave ou do valor especificado
o previnem de serem armazenados neste map.
IllegalArgumentException - se algum aspecto da chave ou valor especificado
o previnem de serem armazenados neste map.
NullPointerException - se este map não permitir chaves ou valores null,
e a chave ou valor especificado for null.V remove(Object key)
(key==null ? k==null : key.equals(k)),
o mapeamento será removido. (O map pode conter no máximo um mapeamento
como esse.)
Retorna o valor que o map associava à chave anteriormente, ou null se o map não contiver o mapeamento para esta chave. (Um retorno null pode também indicar que o map associava anteriormente null à chave especificada, no caso da implementação suportar valores null.) O map não deve conter um mapeamento para a chave especificada assim que o método retornar.
key - chave cujo mapeamento deverá ser removido do map.
ClassCastException - se a chave for de um tipo não apropriado para
este map (opcional).
NullPointerException - se a chave for null e este map
não permitir chaves null (opcional).
UnsupportedOperationException - se o método remove não for
suportado por este map.void putAll(Map<? extends K,? extends V> t)
put(k, v)
uma vez para cada mapeamento da chave k ao valor v do map
especificado. O comportamento desta operação é indefinido se o
map especificado for modificado enquanto a operação estiver em progresso.
t - Mapeamentos a serem armazenados neste map.
UnsupportedOperationException - se o método putAll não for
suportado por este map.
ClassCastException - se a classe da chave ou do valor no map especificado
o previne de ser armazenado neste map.
IllegalArgumentException - algum aspecto da chave ou do valor no map
especificado o previne de ser armazenado neste map.
NullPointerException - se o map especificado for null, ou se
este map não permite chaves ou valores null e o
map especificado contiver chaves ou valores null.void clear()
UnsupportedOperationException - se este método não for suportado por este
map.Set<K> keySet()
Collection<V> values()
Set<Map.Entry<K,V>> entrySet()
Map.Entry. O set é
suportado pelo map, portanto, alterações no map serão refletidas no set
e vice-versa. Se o map for modificado enquanto uma iteração sobre o set
estiver em progresso (exceto através da operação remove do
próprio iterator ou através da operação setValue no map entry retornado
pelo iterator), os resultados da iteração serão indefinidos. O set suporta
remoção de elementos, no qual removerá o correspondente mapeamento do map,
via operações Iterator.remove, Set.remove, removeAll,
retainAll e clear. Não há suporte para operações add ou addAll.
boolean equals(Object o)
equals in class Objecto - objeto a ser comparado por igualdade com este map.
Object.hashCode(),
Hashtableint hashCode()
hashCode in class ObjectMap.Entry.hashCode(),
Object.hashCode(),
Object.equals(Object),
equals(Object)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
Copyright 2006 Sun Microsystems, Inc. Todos os direitos reservados. O uso está sujeito aos termos da licensa.