Adicionando e removendo itens de um mapa

5 respostas
P

galera, to com a seguinte dúvida…

eu tenho um mapa que representa um estoque de peças, no caso , pra adicionar eu vou la e coloco, martelo: 2 ou chave inglesa: 3, agora digamos que eu queira adicionar novamente um martelo, ex. martelo: 3, ate agora meu metodo simplesmente substitui o item anterior, ele joga fora o martelo: 2 e coloca la o martelo: 3 no lugar, o que eu quero fazer é que ele simplesmente adicione o valor dado ao valor atual, dai ficaria martelo: 5, do mesmo modo um pra remover, caso eu va lá e remova martelo: 2. fique martelo: 3.

ate agora o metodo tá assim

private Map<String, Integer> estoqueDePecas = new HashMap<String, Integer>();

public void addPeca(String peca, int quant) throws Exception{
		if (peca==null || quant<=0)
			throw new IllegalArgumentException("VALOR INVÁLIDO.");
		estoqueDePecas.put(peca, quant);
	}

qualquer ajuda será bem vinda

5 Respostas

Flavio_Luiz

então kra…
não tenho certeza… mas parece q vc quer é atualizar o valor ou melhor a quantidade da ferramenta…
antes de add no Map vc precisa verificar se ja não existe uma chave igual no map…
é ai q esta a diferença…

P

Flavio Luiz:
então kra…
não tenho certeza… mas parece q vc quer é atualizar o valor ou melhor a quantidade da ferramenta…
antes de add no Map vc precisa verificar se ja não existe uma chave igual no map…
é ai q esta a diferença…

em outras palavras, é exatamente, isso caso a chave seja igual é pra atualizar o valor,
agora como fazer isso eu nao sei :frowning:

Flavio_Luiz

hehe legal… ja sabe como resolver…
como fazer é mais facil ainda… agora é lógica…
certamente vc encontrará algo aqui que resolverá seu problema…
http://java.sun.com/javase/6/docs/api/java/util/Map.html

P

bixo, ainda nao consegui resolver isso,
alguem podia mostrar o codigo ou alguma coisa do tipo, pq eu ja tentei de tudo aqui e nao sai do canto =/

el_loko

paulosouto:
bixo, ainda nao consegui resolver isso,
alguem podia mostrar o codigo ou alguma coisa do tipo, pq eu ja tentei de tudo aqui e nao sai do canto =/

Você não tentou de tudo. Senão teria resolvido o problema! é uma questão de lógica apenas.

Se vc acessou o link que o Flavio Luiz enviou verá que existe um método chamado containsKey.

if(seuMap.containsKey(key)){
        Object value = m.get(key);
        //Converta o valor para o tipo desejado e faça o que quiser com ele.
}

PS: Retire a caixa alta do título do tópico

Criado 28 de maio de 2010
Ultima resposta 29 de mai. de 2010
Respostas 5
Participantes 3