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 : Sélectionner tout - Visualiser dans une fenêtre à part
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