Duvida com Map

7 respostas
Douglas_Magno
eu to colocando essa duvida aqui, pois de um problema de exceção codigo
//exibe uma faixa etaria de idade que o usuário determinar   
     public  Map pesquisaPorIdade(int idadeMin, int idadeMax){  
           if(mapa.size() == 0){  
               return null;  
           }  
          if (idadeMin <= 0 && idadeMax<=0)  
               return null;  
              
           if(idadeMin >= idadeMax){  
              return null;  
          }              
          for(int i = 0; i < mapa.size(); i++){  
              Pessoa aux = (Pessoa)mapa.get(i);  
              if(idadeMin <= aux.getIdade() && idadeMax >= aux.getIdade()){  
                  mapa.put(aux.getIdade(),aux);  
              }else{}  
          }  
      return mapa;  
      }

o problema que esta dando é que quando eu passo o parametro da pesquisa, ai ele da um problema nessa linha

Pessoa aux = (Pessoa)mapa.get(i);

a mensagem que aparece é:ClassCastException: Java.lang.String cannot be cast to java.lang.Interger(in java.lang.Integer), essa é a mensagem de erro que aparece.

espero que vocês possam me ajudar.

7 Respostas

lina

Oi,

O objeto que você adicionou no MAP não é do tipo Pessoa.

Tchauzin!

Douglas_Magno

obrigado lina

mrrbigu

Olha não deu para entender nada do código que você passou, não sei o que você está querendo fazer. Imagino que você queira fazer uma pesquisa num conjunto de pessoas e retornar as que estão numa determinada faixa de idade, só que nesse caso normalmente se retorna uma parte ou um novo conjunto como resposta e você está incluindo novos itens no mesmo mapa em que pesquisa!?

charlestff

lina:
Oi,

O objeto que você adicionou no MAP não é do tipo Pessoa.

Tchauzin!

Ele não colocou o código completo aqui, o problema é que ele tem um TreeMap que é esse “mapa” que é do tipo String, e no laço ele está tentando pegar o objeto passando um valor inteiro no caso mapa.get(i)

e ele tbm já replicou o tópico, nesse caso axo melhor ele postar todo o código para que possamos ajuda-lo.

Douglas_Magno

obrigado mrrbigu

Douglas_Magno
import java.util.*;
import java.text.SimpleDateFormat;

public class Agenda{

   //private ArrayList<Pessoa> pessoas;
    
    private Map mapa;
   
    public Agenda(){
        mapa = new TreeMap<String, Integer>();
        //pessoas = new ArrayList<Pessoa>();         
    }
    
    //procurar telefone na lista 
    public String procurarTelefone(String nome){
          if (nome == null)
             return null;

          if(mapa.size() == 0){
                return null;
            }
        for (int k=0; k<mapa.size(); k++){
            Pessoa atual = (Pessoa)mapa.get(k);
            if (nome.equalsIgnoreCase(atual.getNome())){
                return atual.getTelefone();
            }
        }
        return null;
      
    }

    
    //adiciona uma pessoa na agenda    
    public void adicionarPessoa (Pessoa p){
        mapa.put(p.getNome(),p);
    }
    
  
    public Pessoa pesPorNome(String nome){
        return (Pessoa)mapa.get(nome);
    }
    
    //exibe uma faixa etaria de idade que o usuário determinar 
   public  Map pesquisaPorIdade(int idadeMin, int idadeMax){
        if(mapa.size() == 0){
            return null;
        }
       if (idadeMin <= 0 && idadeMax<=0)
            return null;
         
        if(idadeMin >= idadeMax){
            return null;
        }            
        for(int i = 0; i < mapa.size(); i++){
            Pessoa aux = (Pessoa)mapa.get(i);
            if(idadeMin <= aux.getIdade() && idadeMax >= aux.getIdade()){
                mapa.put(aux.getIdade(),aux);
            }else{}
        }
    return mapa;
    }
olha ai o codigo todinho
Marky.Vasconcelos

NÃO DUPLIQUE TÓPICOS.

Por causa disso existem respostas aqui e lá, agora, continue no seu outro tópico.

http://guj.com.br/posts/list/226280.java

Tópico trancado.

Criado 1 de dezembro de 2010
Ultima resposta 1 de dez. de 2010
Respostas 7
Participantes 5