La j'ai comme qui dirais un truc que je ne comprend pas. J'utilise un objet
de ma definition en clef d'une hashtable. Pour retrouver la clefs lors d'un
appel a containsKey sur la hashtable on surcharge donc la methode equals (en
faisant attention de bien respecter la signature). Bon jusque la j'espere ne
pas avoir raconter de connerie...(en fait je ne fais que recopier les
messages sur le meme sujet que j'ai deja lue :s). Il est tard pour
moi...mais franchement je ne vios pas ce qui cloche dans mon code. Voici une
version simplifie de ce que je ne comprend pas (voir code ci dessous).
Pourquoi l'execution de ce code fait apparaitre en console toujours
"no"...et jamais "ok" et encore moin "equals" ou "hashCode" ? Je suis
certain que c'est une grosse connerie mais la je ne vois pas :s
Objet utilise en clef :
-----------------------------------------------------------
public class Key {
private String value;
private int hashCode;
public Key(String inValue, int inCode) {
value = inValue;
hashCode = inCode;
}
public boolean equals(Object obj) {
boolean result = true;
System.out.println("equals");
return result;
}
public int hasCode() {
System.out.println("hashCode");
return hashCode;
}
}
-----------------------------------------
Fichier mail :
-------------------------------------------
import java.util.*;
public class TrivialApplication {
public static void main(String args[]) {
Hashtable table = new Hashtable();
Pourquoi l'execution de ce code fait apparaitre en console toujours "no"...et jamais "ok" et encore moin "equals" ou "hashCode" ? Je suis certain que c'est une grosse connerie mais la je ne vois pas :s
Objet utilise en clef : ----------------------------------------------------------- public class Key { private String value; private int hashCode;
public Key(String inValue, int inCode) { value = inValue; hashCode = inCode; } public boolean equals(Object obj) { boolean result = true; System.out.println("equals"); return result; } public int hasCode() { System.out.println("hashCode"); return hashCode; } }
Il manque un 'h' dans le nom de cette dernière méthode
nioTo
Pourquoi l'execution de ce code fait apparaitre en console toujours
"no"...et jamais "ok" et encore moin "equals" ou "hashCode" ? Je suis
certain que c'est une grosse connerie mais la je ne vois pas :s
Objet utilise en clef :
-----------------------------------------------------------
public class Key {
private String value;
private int hashCode;
public Key(String inValue, int inCode) {
value = inValue;
hashCode = inCode;
}
public boolean equals(Object obj) {
boolean result = true;
System.out.println("equals");
return result;
}
public int hasCode() {
System.out.println("hashCode");
return hashCode;
}
}
Il manque un 'h' dans le nom de cette dernière méthode
Pourquoi l'execution de ce code fait apparaitre en console toujours "no"...et jamais "ok" et encore moin "equals" ou "hashCode" ? Je suis certain que c'est une grosse connerie mais la je ne vois pas :s
Objet utilise en clef : ----------------------------------------------------------- public class Key { private String value; private int hashCode;
public Key(String inValue, int inCode) { value = inValue; hashCode = inCode; } public boolean equals(Object obj) { boolean result = true; System.out.println("equals"); return result; } public int hasCode() { System.out.println("hashCode"); return hashCode; } }
Il manque un 'h' dans le nom de cette dernière méthode
nioTo
Craps
il faut deja mettre this devant les variables private de ta classe
public Key(String inValue, int inCode) { this.value = inValue; this.hashCode = inCode; }
il faut deja mettre this devant les variables private de ta classe
public Key(String inValue, int inCode)
{
this.value = inValue;
this.hashCode = inCode;
}