This week's book giveaway is in the Clojure forum.
We're giving away four copies of Clojure in Action and have Amit Rathore and Francis Avila on-line!
See this thread for details.
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Collection - Chap 7 (Maps) (Problem in Understanding an example in K&B SCJP 1.6)

 
Tanya Shetty
Ranch Hand
Posts: 40
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator



Output :
Dog key
New Dog Key
collection.Dog@35ce36
collection.Dog@757aef
null
null
New Dog Key
New Dog Key


Question
Object ref "d" is used as a key for the value "New Dog Key". the hashcode for object of class Dog,
is used as the length of variable "name".
As per the SCJP 1.6, Chap 7 , when the value of "name" for object ref "d" is changed to "magnolia" ie. d.name = "magnolia"; the object will be searched in a hash bucket other than that where the object was placed originally ie hash bucket returned when value of "name" was diego.

Hence, the System.out.println(m.get(d)); should return null!!
But, as you can see the code returns an output with value "new Dog Key".

I dont understand ?

 
Ankit Garg
Sheriff
Posts: 9497
22
Android Google Web Toolkit Hibernate IntelliJ IDE Java Spring
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Read this or this...
 
Anastasia Sirotenko
Ranch Hand
Posts: 64
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
be careful with function names
here you have hashcode() function, not hashCode(), as a result the program uses the default object hashCode() for d reference wich does not depend on any Dog field

In real life you can mark your overridden method by @Override annotation, wich will save you some nerve, but for exam we just have to be careful with such "typo's" in code
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic