Duvida com relaçao a HASH MAP

Ola pessoal,

Estou com a seguinte dúvida; estou usando uma Hash Map pra criar um dicionario de dados, a minha duvida é quando eu vou ‘pegar’ os dados delas. Como limitei o numero de entradas a 256, havéra colisoes com crtza, oque eu nao estou conseguindo fazer é pegar um determinado valor ‘x’ da Map devolta, pois o metodo Get () tem como apenas uma key, mas no caso de haver colises como isso é tratado? qual dos ‘n’ valores ‘apontados’ pelo key ‘x’ será retornado?

        HashMap map = new HashMap(256);
        map.get(Object Key);

Assim vou dar um exemplo:

        HashMap map = new HashMap(256);
        map.put("fire", "fogo");//inseriu fogo na chave fire.
        map.put("fire", "FOGO FOGO"); //sobrepos FOGO FOGO na chave fire.
        map.put("water", "agua");//inseriu agua na chave whater.

        map.get("water");// aqui vai Retornar agua
        map.get("fire");// aqui vai Retornar FOGO FOGO

como pode ver não tem como existir duplicados, pois ao inserir novamente com a mesma chave, é posto o valor “por cima” do que ja existe.

hmmm
Mas teoricamente uma tabela hash não pode ter inumeras entradas para o mesmo ‘apontador’ ?
ou hash map do java nao é a mesma coisa que tabelha hash?

Logico que podemos contar isso com uma certa lista não?

PS: Codigo java 1.5 ou superior

Map<String, List><Integer>> map = new HashMap<String, List><Integer>>();

desculpe mas não vejo como isso soluciona meu problema :frowning:

Acho que talvez não detalhei direito meu problema…

O conhecimento que tenho de tabela hash é mais téorico, eu até já implementei uma mas em C. Inclusive quando o fiz utilizei listas encadeadas, ou seja, um certo ‘apontador’ ( indexador ) gerado pela função de espalhamento “apontava” para uma lista encadeada.
Ai quando eu ia fazer uma busca na minha hash table, eu fazia primeiramente uma busca nos apontadores… identificando ele Se ouvesse mais de 1 elemento na sua lista ( no caso de ter acontecido colisão ) entao eu faço uma busca sequencial nela para encontrar o valor procurado.
Agora minha dúvida ( como sou iniciante em java ) é, a hash map do java faz isso? ou como ela funciona ? terrei q sobre escrever algum metodo para ela funcionar dessa forma?

obrigado,

rodrigo gonzato

por exemplo usando uma lista como segundo item

List<Integer> valores = hash.get("chave");
for(Integer i : valores){
  //Aqui você pode fazer qualquer operação com o valor i
}

vlw cara com isso acho que resolvo meu problema

brigadao