What is the primary advantage of using a universal hash function?
It eliminates the possibility of collisions entirely.
It ensures constant-time performance for all operations.
It makes the hash table resistant to attacks that exploit patterns in the hash function.
It provides better performance than any single, fixed hash function.
Python dictionaries use open addressing for collision resolution. Which of the following techniques helps mitigate the performance degradation caused by clustering in open addressing?
Linear Probing with a prime step size
Robin Hood Hashing
Separate Chaining
Using a cryptographic hash function
What mechanism does Java's ConcurrentHashMap employ to allow for concurrent reads and updates while maintaining thread safety?
Fine-grained locking at the bucket level
Read-write locks separating readers and writers
Lock-free data structures using atomic operations
A single global lock for all operations
How does using a cryptographic hash function with a random salt improve the security of a hashmap storing user credentials?
It encrypts the data stored in the hashmap, making it unreadable without the decryption key.
It makes it significantly harder for attackers to perform rainbow table attacks.
It eliminates the possibility of hash collisions.
It prevents unauthorized users from accessing the hashmap's keys.
Why is it generally recommended to avoid using mutable objects as keys in hash tables?
Mutable keys can lead to inconsistent state if their values are modified after being inserted into the hash table.
Hash tables cannot store mutable objects as keys; only immutable objects are allowed.
Mutable keys make the implementation of the hash table significantly more complex.
Using mutable keys increases the memory overhead of the hash table.
What is the primary reason for using a prime number as the size of a hash table in many implementations?
To make the implementation of the hash table simpler.
To ensure an even distribution of keys across the hash table, reducing collisions.
To increase the speed of hash function computation.
To minimize the memory usage of the hash table.
In a web server implemented using a hashmap to store cached web pages, which collision resolution strategy is generally preferred for its performance in handling a high volume of concurrent requests?
Separate Chaining with linked lists
Separate Chaining with balanced binary search trees
Open Addressing with linear probing
Double Hashing
In a hash table using double hashing, the second hash function is used to:
Determine the initial index to store the key.
Generate a new key if a collision occurs.
Calculate the size of the hash table.
Determine the step size for probing in case of a collision.
You are implementing an LRU (Least Recently Used) cache with a fixed capacity. Which data structure combination would be most suitable for efficiently managing the cache?
Binary Search Tree + Heap
Hashmap + Stack
Array + Queue
Hashmap + Doubly Linked List
Which of these statements best describes the advantage of using a perfect hash function over a regular hash function?
It eliminates the need for collision handling.
It allows for faster key insertions.
It reduces the memory used by the hash table.
It guarantees constant-time search, insertion, and deletion in the worst case.