Função remove no TreeMap

Eu estou tentando remover um elemento de um TreeMap, mas minha função não esta funcionando. Eu acredito q eu deva estar usando a função remove de forma incorreta. Alguém pode me ajudar?

private Map<String, BottomFrame> seleciona = new TreeMap<String, BottomFrame>(); // onde BottomFrame é uma classe que eu criei
public void deleteItem(String id){
     seleciona.remove(id);
  }

Obrigada

É assim mesmo. Tem certeza que o ID que você está passando é idêntico a chave que está no TreeMap?

Por que você acha que não está funcionando?

O mais provável é que deve estar dando uma ConcurrentModificationException. Isso pode ocorrer quando se percorre um TreeMap com “for” sem usar o Iterator - deve-se remover o elemento usando o Iterator, não a chave.

então viny, não tah funcionando. eu postei essa duvida http://www.guj.com.br/posts/list/213981.java, mas como ninguém respondeu, eu achei q a unica explicação pra eu não conseguir abrir a mesma janela seria q eu estaria usando errado o metodo remove()…
Mas se tah certo… então não faço a mínima ideia
:frowning:

“Não está funcionando” parece coisa de usuário. Diga o que ocorre:
a) Não está removendo o elemento desejado, simplesmente.
b) Está pegando uma ConcurrentModificationException.
c) Você quer remover o elemento “josé” (tudo em minúsculas) mas está cadastrado “José” (a primeira letra maiúscula).

Mas como eu uso o iterator num TreeMap?

Não é isso. Eu mando ele remover um frame de um TreeMap de frames. Mas o que parece é q ele não remove.
Se alguém tiver a gentileza de olhar esse topico q eu criei, entenderá o que ele não está excluindo
http://www.guj.com.br/posts/list/213981.java

Diga o que você quer fazer. O iterador só deve ser usado no caso 1).

  1. Você está filtrando os elementos de um TreeMap e quer eliminar tudo que bate com “josé”

  2. Você escolheu um elemento em um TreeMap e quer eliminá-lo fora de um “for”.

eu tenho uma chave que é passada como parametro e quero remover tudo o q tiver essa chave

oitathi, roda a aplicação em modo debug para saber se o seu método está realmente sendo chamado, ou sendo chamado coma chave certa.

posta aí os resultados

flw

ele não está removendo. eu mandei ele imprir o meu treemap depois de chamada a função remove e a minha chave continuou lá. Tenho a leve impressão de que preciso usar o iterator para percorrer o meu map para assim remover a chave. Só que eu não sei fazer isso… alguém me ajuda?
Como eu faço pra remover um elemento de um TreeMap, passando uma chave como parametro, usando o iterator?