I am feeling really confused at the moment about this question
as the hascode is not explicitly defined t1, t2 and t3 will go go in to three diffrent buckets.
why should this be guaranteed?
Default hashCode() that you get from the Object class hashCode()
definition, each object will have different hashCode.
I think your doubt runs around, the hashCode() from the Object class
may return same hashCode() for more than two objects,
As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects.
I am also in doubt with the answers to question 9 and 17 from the threads chapter)
It would be better I you had started the threads doubt in new thread.
"Sometimes the JVM may call notify() for reasons of its own." So output "1 2 3" is an option.