Hashtable

Discutez d'informatique ici !
Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

Hashtable

par Rockleader » 01 Jan 2015, 15:30

Toujours sur java, je rencontre un petit soucis avec cette structure, si je ne m'abuse il s'agit de table de hachage, j'avais vu la structure en C l'an dernier, mais là je suis un peu paumé

Code: Tout sélectionner
protected Hashtable caract = new Hashtable();



Pour moi ça permet d'utiliser le string comme une clé pour référencer un entier

Sauf que, un peu plus loin je trouve ceci

Code: Tout sélectionner
   public Element(String nom) {      
      this.nom = nom;
      caract.put("vie", 1);
   }


Sa veut dire que tous les éléments que je créerais avec ce constructeurs auront tous la même référence sur vie et vont tous pointer au même endroit :hum:


Sa me parait un peu chelou cette histoire j'ai du mal comprendre; en C on utilisait la clé pour pointer sur une autre structure de pointeur ça permettait de classer. Mais au final on avait une clé unique pour plusieurs valeur, dans mon cas j'ai plusieurs clés de même valeur pointant sur plusieurs valeurs elles aussi identiques.

Soit j'ai mal compris le principe de table de hachage soit j'ai mal compris ce code...





EDIT:

Un autre point qui m'est inconnu ArrayList

Code: Tout sélectionner
   /**
    * Reference des personnages de l'equipe de ce personnage.
    * Vide si le leader n'est pas egal a -1.
    */
   private ArrayList equipe;


D'après ce que j'ai compris c'est un tableau d'objet et on lui donne une taille en integer ?

Hors, plus loin je fais ça

Code: Tout sélectionner
equipe = new ArrayList();


On crée un tableau de 10 objets (taille par défaut si j'ai bien compris; mais alors pourquoi garder ? )
Comment on sait ce que représentent ces objets ça peut être n'importe quoi ?




Et dernière chose dans ces deux "exemples" pourquoi utilise on Integer et non int ?

De façon plus générale que signifie ?
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 01 Jan 2015, 16:22

Code: Tout sélectionner
public Element(String nom) {      
      this.nom = nom;
      caract.put("vie", 1);
   }

à priori, Element est un majuscule, donc c'est un constructeur. Si l'auteur du code est à peu près correct, ca veut dire que caract est un champs de Element.
Donc tous les éléments sont créés avec une vie initialisée à 1.

Code: Tout sélectionner
equipe = new ArrayList();

ca veut juste dire que tu crèes un tableau dont tu ne connais pas la taille.

Code: Tout sélectionner
 Et dernière chose dans ces deux "exemples" pourquoi utilise on Integer et non int ?

je sais pas, jdirais que c'est soit parce que tu peux pas (au pif), soit parce que tu vas devoir coercer ton type primitif à un moment ou l'autre et donc autant directement storer l'élément objet pour pas avoir tout le temps à coercer

De façon plus générale que signifie ?

ce sont les generics, le net t'en dira plus
la vie est une fête :)

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 01 Jan 2015, 18:27

Merci bien pour cette réponse c'est déjà plus clair :) :lol3:
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite