This week's book giveaway is in the General Computing forum. We're giving away four copies of Arduino in Action and have Martin Evans, Joshua Noble, and Jordan Hochenbaum on-line! See this thread for details.
The book says HashMap is unordered and unsorted.But for me ,it looks like based on the keys,values are sorted.I am consfused on HashMap.please help me to get out.
Not sure, what made you to think it is sorted. In your code, the values are printed in the order of system.out.println(). You overwrote the value of key m1 and therefore the latest value of m1 is being printed.
1)First of all you have defined MyClass without a hashCode or equals. 2)Secondly you are passing MyClass a String and assuming some order.
Are you getting what you are doing ?
Thanks & Regards,<br />T.Srinivasan,<br />SCWCD 1.4(89%),SCJP 5.0(75%)<br />"That service is the noblest which is rendered for its own sake." - Mahatma Gandhi
Shiva Mohan
Ranch Hand
Joined: Jan 05, 2006
Posts: 465
posted
0
Thanks for the replies.
1.i just meant,based on the keys (referencevariable m1,m2,m3) that order ,values are sorted.
2.I am trying to work on krishnans modified program.i changed the program in 1.4 format.
But please help me to get the output
m2 value m3 value m1 value Size: 4 null bKing aGowher eGowher
Originally posted by Shiv Mohan (i) just meant,based on the keys (referencevariable m1,m2,m3) that order ,values are sorted.
1- You have not overridden equals() and hashCode() methods of the Obejct class in your class named MyClass. It is recommended that when you are using your own class as a key, you should give definition to both the methods to compare when two objects should be treated equals. What default implementation of the equals() says, two objects are equal if their reference variable are referring to the same object on the heap.
So far as your confusion of ordering is concerned: there is no magic with get() method: get method takes the object reference(key) and returns the value, you confusion is running around the same; you may be thinking that get is returning the objects in the same way you have stored. But it is nothing like that, you can try by changing the order:
There is nothing like order in the HashMap. And no order means no sorting of course.