Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Java Language
Expertise: Beginner
May 5, 2000

Vectors vs. Hashtables

Question:
Is there a significant speed advantage to using Hashtables over Vectors?

Answer:
The answer depends on how you are using those containers classes. If you are only using them for storage, then a Vector will be more efficient. A Vector stores its elements in an array that is resized when its capacity is exceeded. Cycling through elements of a Vector with an Iterator or Enumeration can be very efficient because it only requires indexing into an array.

However, if you intend to randomly access the container values based on an arbitrary set of keys, then a Hashtable will be more appropriate since a Vector does not support that functionality. If you want to use the containers primarily for doing value-based lookups, then neither is appropriate. Searching through a Vector is O(n), which means that given n elements, you may have to look at every element before finding what you are looking for. Unless you use a value as its own key, a Hashtable will be equally poor. You should also keep in mind that the methods of both Vector and Hashtable are synchronized, which can reduce performance for sequential programs. You should instead try to use ArrayList and HashMap, which are found in the Java 2 Platform.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date