HI EVERYONE
IN THIS HAST MAP PRGRAM I DINT UNDERSTAND SOME COMMANDS: JUS HAVE A LOOK
import java.util.*;
class Dog
{
public Dog(
String n) { name = n; }
public String name;
public boolean equals(Object o)
{
if((o instanceof Dog) &&
(((Dog)o).name == name))
{
return true;
}
else
{
return false;
}
}
public int hashCode() {return name.length(); }
}
class Cat { }
enum Pets {DOG, CAT, HORSE }
class MapTest
{
public static void main(String[] args)
{
Map<Object, Object> m = new HashMap<Object, Object>();
m.put("k1", new Dog("aiko")); // add some key/value pairs
m.put("k2", Pets.DOG);
m.put(Pets.CAT, "CAT key");
Dog d1 = new Dog("clover"); // let's keep this reference
m.put(new Cat(), "Cat key");
System.out.println(m.get("k1")); // #1
String k2 = "k2";
System.out.println(m.get(k2)); // #2
Pets p = Pets.CAT;
System.out.println(m.get(p)); // #3
System.out.println(m.get(d1)); // #4
System.out.println(m.get(new Cat())); // #5
System.out.println(m.size()); // #6
}
}
MY DOUBT IS IN THE PROGRAM THE HASHCODE() METHOD WAS USE WHICH IS BEEN OVERRIDEN AND IT RETURNS THE LENGHT OF THE STRING n,
WHERE THIS RETURNED VALUE IS USED ? WHAT IS THE USE OF HAVING THIS RETURNED VALUE IN THE HASHCODE MEHTOD?WHERE DOES IT COMPARE THE OBJECTS?