Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Why HashMap is transient inside HashSet implementation?

 
Shishir R Verma
Greenhorn
Posts: 6
Hibernate Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

This question might have been asked earlier and probably a dumb question to ask, but It is somehow stuck in my mind.
I was looking at the code of HashSet, which actually looks like a wrapper around HashMap. I noticed that the HashSet class is implementing Serializable and HashMap is declared as transient variable inside it. Why HashMap is transient?

Thanks in advance...
 
Winston Gutkowski
Bartender
Pie
Posts: 10427
63
Eclipse IDE Hibernate Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Shishir Rmv wrote:I was looking at the code of HashSet, which actually looks like a wrapper around HashMap. I noticed that the HashSet class is implementing Serializable and HashMap is declared as transient variable inside it. Why HashMap is transient?

Almost certainly because a HashSet can be translated into a more compact serialized form than an equivalent HashMap; but at the end of the day, without talking to the designer, it's pure speculation.

Perhaps a bit more source-code gazing is in order.

Winston
 
Shishir R Verma
Greenhorn
Posts: 6
Hibernate Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Winston Gutkowski wrote:
Almost certainly because a HashSet can be translated into a more compact serialized form than an equivalent HashMap; but at the end of the day, without talking to the designer, it's pure speculation.

Winston


Thanks Winston. That's what I was thinking. And in the end of the day while deserialzing it back, it loses its compactness anyways.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic