Java

Topic: Collection Framework

Where will you use Hashtable and where will you use HashMap?

There are multiple aspects to this decision: 1. The basic difference between a Hashtable and an HashMap is that, Hashtable is synchronized while HashMap is not. Thus whenever there is a possibility of multiple threads accessing the same instance, one should use Hashtable. While if not multiple threads are going to access the same instance then use HashMap. Non synchronized data structure will give better performance than the synchronized one. 2. If there is a possibility in future that - there can be a scenario when you may require to retain the order of objects in the Collection with key-value pair then HashMap can be a good choice. As one of HashMap's subclasses is LinkedHashMap, so in the event that you'd want predictable iteration order (which is insertion order by default), you can easily swap out the HashMap for a LinkedHashMap. This wouldn't be as easy if you were using Hashtable. Also if you have multiple thread accessing you HashMap then Collections.synchronizedMap() method can be leveraged. Overall HashMap gives you more flexibility in terms of possible future changes.

Browse random answers:

What are the goals of collections framework?
Explain the contents of collection framework? 
Explain interfaces of collectonframework?
Explain the collection classes?
Explain algorithms in collection framework?
How to use an Iterator ?
How to use an Comparator ?
What is the difference between java.util.Iterator and java.util.ListIterator?
What is HashMap and Map? 
Difference between HashMap and HashTable? Compare Hashtable vs HashMap?
What does synchronized means in Hashtable context?
What is fail-fast property?
Why doesn't Collection extend Cloneable and Serializable?
How can we make Hashmap synchronized?
Where will you use Hashtable and where will you use HashMap?
Difference between Vector and ArrayList? What is the Vector class? 
What is the Difference between Enumeration and Iterator interface?
Why Java Vector class is considered obsolete or unofficially deprecated? or Why should I always use ArrayList over Vector?
What is an enumeration?
What is the difference between Enumeration and Iterator?
Where will you use Vector and where will you use ArrayList?
What is the importance of hashCode() and equals() methods? How they are used in Java?
What is the difference between Sorting performance of Arrays.sort() vs Collections.sort() ? Which one is faster? Which one to use and when?
What is java.util.concurrent BlockingQueue? How it can be used?
Set & List interface extend Collection, so Why doesn't Map interface extend Collection?
Which implementation of the List interface provides for the fastest insertion of a new element into the middle of the list? 
What is the difference between ArrayList and LinkedList? (ArrayList vs LinkedList.) 
Where will you use ArrayList and Where will you use LinkedList? Or Which one to use when (ArrayList / LinkedList).
What is performance of Map interface implementations
What is Performance of Set interface implementations
What is Performance of List interface implementations