Here are some advantages and disadvantages of using a hash compared to using a tree. Hashing is very efficient as long as the hashing algorithm is a good one. It gives very fast access to any element in the HashSet . However, dealing with the complexities of creating the hashing algorithm as well as dealing with collisions (a collision is when two different items have the same hash key) can be difficult. One consequence of collisions is that extra memory is required to handle the possibility of collisions. Lesson AB32, Hash-Coded Data Storage will explore hashing in detail.
Balanced binary search trees give good average performance for any data size. In certain situations, they can be incredibly efficient and always use the minimum amount of memory. Lesson AB30, Binary Trees will explore balanced binary search trees in detail.
|