Atualizar Valor HashMap

Olá pessoal.

Tava fazendo um método aqui que conta quanto cada letra apareceu repetidamente em uma frase.
Para isso, usei um HashMap. Entretanto, quando preciso atualizar a quantidade de vezes que um caractere aparece, eu preciso remover do HashMap e depois inseri-lo novamente com o novo valor. Alguem sabe se existe um meio de editar o valor sem ter que retirá-lo?

[code] public static void main(String[] args) {
Map<Character, Integer> repeticao = new HashMap<Character, Integer>();

	System.out.print("Digite uma frase: ");
	String frase = new Scanner(System.in).nextLine();

	frase = frase.toUpperCase();
	for (Character c : frase.toCharArray()) {

		Integer qtd = repeticao.get(c);

		if (qtd == null) {
			repeticao.put(c, new Integer(1));
		} else {
			qtd++;
			repeticao.remove(c); // removo
			repeticao.put(c, new Integer(qtd)); //insiro a mesma letra com novo valor
		}

	}
	for (Map.Entry<Character, Integer> o : repeticao.entrySet()) {
		System.out.println("Letra: " + o.getKey() + " - Aparicao: "
				+ o.getValue());

	}
}[/code]

obg.

Interessante sua dúvida, também não sei a resposta e fiquei interessado para saber se é possivel fazer isso. :-o

Velho você não precisa retirar a letra do hash, basta você fazer

repeticao.put(c, qtd++);

O hash não permite chaves repetidas por isso não há necessidade de retirá-lo para atualizar o seu valor :wink:
Dê uma lida na API

Entendi, ja sabia q ele nao permitia repeticoes mas pra mim ele simplesmente jogava fora qnd havia repeticoes, mas na verdade ele atualiza =)

obg

E nunca, mas NUNCA, altere o estado de um objeto que está contido num HashMap.
HashMap se baseia no cálculo do hashcode do objeto para decidir em que nó da sua estrutura interna ele irá armazenar o objeto. Assim, caso vc altere o estado de um objeto que está dentro do HashMap, faça a atualização do mesmo, através do put(chave, objeto).
Lembro da vez que perdi umas 2 horas tentando descobrir porque o meu objeto não estava retornando, e quando vi que ele estava dentro do hashMap, mas o get nãoe stava retornando, dai eu me lembrei do cálculo de hash.

[quote=renamed]Entendi, ja sabia q ele nao permitia repeticoes mas pra mim ele simplesmente jogava fora qnd havia repeticoes, mas na verdade ele atualiza =)

obg[/quote]

Na verdade ele perde a referência para o objeto que pertence a aquela chave!