Problemas com HashMap

ola,

estou tentando armazenar palavra num HashMap, mas a cada palavra que eu adiciono ele substitui todas pela ultima inserida … :open_mouth:
jah fiz de tud, mas não acho o erro, jah imprimi cada objeto antes de inseri e cada um gera uma key diferente … o codigo esta abaixo:
se alguem poder me ajudar … valew !!

              word = new Palavra(palavra);
              if (vetor.containsKey(word.hashCode())) {
                    Palavra temp = (Palavra) vetor.get(word.hashCode());
                    temp.incQuantidade();
                    vetor.put(temp.hashCode(), temp);
                } else {
                    vetor.put(word.hashCode(), word);
                    System.out.println(vetor.toString());
                }

Coloque sua classe palavra ai para nos…

[code]public class Palavra {
static String palavra = null;
static int quantidade = 1;

/** Creates a new instance of Palavra */
public Palavra() {
}

public Palavra(String word) {
    palavra = word;
}

public Palavra(String word, int qtd) {
    palavra = word;
    quantidade = qtd;
}

public static void incQuantidade() {
    quantidade++;
}

public String getPalavra() {
    return palavra;
}

public int getQuantidade() {
    return quantidade;
}

public void setQuantidade(int quantidade) {
    this.quantidade = quantidade;
}

public void setPalavra(String palavra) {
    this.palavra = palavra;
}

public int hashCode() {
    return palavra.hashCode() + quantidade;
}

public String toString() {
    return "Palavra: " + palavra + " Quantidade: " + quantidade + " Codigo: " + hashCode();
}

}
[/code]

Seu atributo palavra dentro da classe Palavra é estático, logo todos instâncias de Palavra terão mesmo hashcode, ja que sempre que vc cria uma nova palavra altera esse atributo, conseqüentemente altera para todas Palavras. Tira esse static do atributo que deve funcionar.

E vale a pena vc ler o javadoc de como deve ser implementando o hashcode

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()

Aproveita e ja olha o equals tb

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#equals(java.lang.Object)

bah, era isso mesmo !! porcaria d static … :stuck_out_tongue:
valew !!