Browse DevX
Sign up for e-mail newsletters from DevX

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



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Vectors vs. Hashtables

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

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.



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