Tableau d'entiers qui ne se rempli pas
Bonjour à tous,
Voilà pour les besoins d'un TP , j'ai eu a faire une simulation de hachage , c'est un code facile mais je n'arrive pas à comprendre pourquoi à l’exécution mon tableau qui devrait recevoir des entiers (les index d'un tableau en entrée) ne se rempli par au fur et a mesure de la boucle !!!
voilà le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| package TP8;
public class HashLinearProbing {
public static char Keys[] = new char[11];
public static int Values[] = new int[11];
// Fonction de hachage par modulo sur le code ascii d'un caractère en entrée
public static int hash(char key, int M){
int hash;
int ascii;
ascii=(int) (key); // récupère le code ASCII d'un caractère
hash=ascii % M; // hachage par modulo
return hash;
}
public static void put(char key,int value){
int M = 11;
int index;
index = hash (key,M);
while (Keys[index] != '\0') {
index = (index + 1);
}
Keys[index] = key;
Values[index] = value;
}
public static void main(String[] args) {
//Déclaration de ma table d'entrée R (Exemple du cours "Hash Table Linear Probing exemple")
char R[]= new char[10];
R[0]='B';
R[1]='O';
R[2]='E';
R[3]='P';
R[4]='C';
R[5]='L';
R[6]='X';
R[7]='N';
R[8]='D';
R[9]='M';
System.out.println("La table de données en entrée est la suivante :");
System.out.println(R);
System.out.println("***************************************************");
int i;
for (i=0; i<R.length; i++) {
put(R[i],i);
}
System.out.println(Keys);
System.out.println(Values);
}
} |
voilà j'ai l'impression que cette instruction ne s’exécute pas : Values[index] = value; à la compilation je retrouve ce résultat:
[I@4cf2f585
Alors que le premier tableau (Keys) se rempli normalement !!!
s'il vous plait je vais devenir folle :aie: