I had an interview today, and I got the following Java code:
public class Question_6 { public static void main(String[] args){ Map<Integer,String> map1 = new HashMap<Integer,String>(); map1.put(new Integer(1),"001a"); map1.put(new Integer(1),"001b"); map1.put(new Integer(2),"002"); System.out.println(map1.size()); Map<MyInt,String> map2 = new HashMap<MyInt,String>(); map2.put(new MyInt(1),"001a"); map2.put(new MyInt(1),"001b"); map2.put(new MyInt(2),"002"); System.out.println(map2.size()); } } public class MyInt { int i; public MyInt(int i) { this.i = i; } } The questions were:
What will be printed to the console?
Suggest a solution to the problem.
I know now that the answer to the first question is :
2 3 But I don't know why? What is the problem with MyInt?
hashCode()andequals()implementations are missing.