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?
privateMap<String,BottomFrame>seleciona=newTreeMap<String,BottomFrame>();// onde BottomFrame é uma classe que eu crieipublicvoiddeleteItem(Stringid){seleciona.remove(id);}
É 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?
E
entanglement
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.
oitathi
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
E
entanglement
“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).
oitathi
Mas como eu uso o iterator num TreeMap?
oitathi
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
E
entanglement
Diga o que você quer fazer. O iterador só deve ser usado no caso 1).
Você está filtrando os elementos de um TreeMap e quer eliminar tudo que bate com “josé”
Você escolheu um elemento em um TreeMap e quer eliminá-lo fora de um “for”.
oitathi
eu tenho uma chave que é passada como parametro e quero remover tudo o q tiver essa chave
italons
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
oitathi
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?