aspose file tools*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes HashMap Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "HashMap" Watch "HashMap" New topic
Author

HashMap

Shiva Mohan
Ranch Hand

Joined: Jan 05, 2006
Posts: 479



Result:
m2 value
m4 value
m3 value
Size: 3

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.
Meena R. Krishnan
Ranch Hand

Joined: Aug 13, 2006
Posts: 178
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.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42635
    
  65
I'm not sure how you can infer anything about whether a Map is sorted or not by adding elements to it, and then retrieving those elements by key?


Ping & DNS - my free Android networking tools app
Meena R. Krishnan
Ranch Hand

Joined: Aug 13, 2006
Posts: 178
Here is the modified code for better understanding

The above prints

m2 value
m3 value
m1 value
Size: 4
null
bKing
aGowher
eGowher


[ April 14, 2007: Message edited by: M Krishnan ]
Srinivasan thoyyeti
Ranch Hand

Joined: Feb 15, 2007
Posts: 557
Hi Krishnan,

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, T.Srinivasan
SCWCD 1.4(89%), SCJP 5.0(75%)
Shiva Mohan
Ranch Hand

Joined: Jan 05, 2006
Posts: 479
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

Mine is just printing address(not values)
Meena R. Krishnan
Ranch Hand

Joined: Aug 13, 2006
Posts: 178
Try this:

Chandra Bhatt
Ranch Hand

Joined: Feb 28, 2007
Posts: 1707
Hi Shiv Mohan,


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.

Regards,
cmbhatt


cmbhatt
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: HashMap