Fonction avec une Hashtable...

jonathan100 Messages postés 39 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 3 juin 2003 - 3 juin 2003 à 11:10
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 - 3 juin 2003 à 12:23
Bonjour à tous :) ,

Voici mon problème. J'ai le tableau "the_packet" qui contient des données du type "DatagramPacket". Je voudrais connaitre l'adresse de type "InetAddress" qui revient le plus souvent dans le tableau. C'est le but de la fonction suivante:


public String retour_adresse()
          {                            
             Hashtable tab_adr = new Hashtable(); 
             InetAddress adr_finale;
             int cpt_final = 0;
             String h="";
             Enumeration mes_elements;
             Integer n=new Integer(0);
                                        
             tab_adr.clear();
             for(int i=0;i<=ma_liste.nombreDonnee();i++)
              {   
                  //n = (Integer)tab_adr.get(the_packet[i].getAddress()); //test pour vérifier si la clé est deja présente dans la hashtable  
                  if(n!=null)
                  {                     
                      int tampon = n.intValue(); //transformation de "Integer" à "int"
                      tampon++; // on incrémente cette valeur
                      Integer z = new Integer(tampon);
                      //tab_adr.put(the_packet[i].getAddress(), z); //on remplace la valeur de la clé                    
                  }
                  else
                  {
                      tab_adr.put(the_packet[i].getAddress(), new Integer(1)); // on crée une nouvelle clé
                  }                
              }
             
                
             for(mes_elements = tab_adr.elements(); mes_elements.hasMoreElements();) //boucle cherchant la valeur max du compteur
             {          
                 Object r = mes_elements.nextElement();
                 h = r.toString();
             }
           
          return h;   
}



Cependant les deux lignes mises en commentaire posent problème. Elles ne génèrent pas d'erreur lors de la compilation, mais en provoque lorsque je construit l'exécutable .jar.
Je voudrais déjà savoir quelle est la différence entre le type "int" et le type "Integer"? Par exemple on ne peut pas incrémenter une valeur de type "Integer"... L'erreur vient peut-être de là... :blush)

Merci par avance de votre aide. ++

1 réponse

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
3 juin 2003 à 12:23
salut,
Integer est un objet un "wrappeur" (enveloppeur) qui permet de manipuler des int qui eux sont des primitives (pas des objets donc pas de methodes ni d attributs)
il faut donc que tu incrémente le int contenu dans ton Integer :
new Integer(tonInteger.intValue() + 1)
par exemple
Duss
0
Rejoignez-nous