Win a copy of Murach's Python Programming this week in the Jython/Python forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

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

 
Tanya Shetty
Ranch Hand
Posts: 40
  • 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: 9608
36
Android Google Web Toolkit Hibernate IntelliJ IDE Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Read this or this...
 
Anastasia Sirotenko
Ranch Hand
Posts: 64
  • 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
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!