Regatar posições de um map

7 respostas
oitathi

Gente, eu tô com uma duvida simples…Eu tenho um TreeMap que contem elementos de uma classe que eu criei chamada BottomFrame. Eu preciso criar um método que resgate cada um dos elementos do meu TreeMap e para cada um desses elementos, eu quero chamar um metodo que pertence a classe BottomFrame. Acredito que eu deva resgatar cada uma das posições e fazer um cast pra BottomFrame, mas eu não sei como… Alguém pode me ajudar?

private TreeMap<String, BottomFrame> selecionados = new TreeMap<String, BottomFrame>();

 public  void printTreeMap2() {
     Iterator iterator = selecionados.entrySet().iterator();
     while (iterator.hasNext()) {
        Map.Entry entry = (Map.Entry) iterator.next();

     }
 }

7 Respostas

E

Não é preciso usar cast. Generics servem, em Java, para evitar casts desnecessários.

private TreeMap<String, BottomFrame> selecionados = new TreeMap<String, BottomFrame>();  
   
 public  void printTreeMap2() {  
      for (Map.Entry<String, BottomFrame> entry : selecionados.entrySet()) {
          String nome = entry.getKey(); // por exemplo
          BottomFrame frame = entry.getValue(); // por exemplo
      }
 }
oitathi

Eu fiz isso, mas qdo eu executo, dah erro de ponteiro nulo…

public  void organizaCascata() {
           contBottom=0;
           for (Map.Entry<String, BottomFrame> entry : selecionados.entrySet()) {
              BottomFrame frame = entry.getValue();
              frame.dispose();
           }//end for
      }//end metodo
E

Provavelmente o ponteiro nulo deve ocorrer na linha 2 deste código:

BottomFrame frame = entry.getValue();  
           frame.dispose();

Se isso ocorreu, provavelmente você fez alguma coisa errada ANTES, na hora de inserir os BottomFrames na sua variável selecionados. OK?

oitathi

Não, a parte de inserir ele insere direitinho

E

Eu sei que ele insere direitinho. Não sei se você está inserindo o valor correto ou então null.

oitathi

Não entendi qual a sua pergunta…
:roll:

E

Vou lhe explicar melhor. Em um Map, você usa o método “put” para inserir um par “chave”, “valor”.

Acontece que pelo sintoma, você insere corretamente a chave, mas está usando o valor como “null”.
Por que? Eu não sei - você é que tem de debugar seu programa para ver por que é que está usando null e não um valor qualquer mas correto.
Então, na hora de tentar pegar o valor (dada a chave correspondente), você está pegando o valor null.

Criado 30 de agosto de 2010
Ultima resposta 30 de ago. de 2010
Respostas 7
Participantes 2