Problem with Direct Addressing: U may be too large.
For example, consider a compiler symbol table. Symbols here are up to 30 alphabetic characters.
U = 26 . 26 . 26 . ... . 26 = 2630 = 2x1042 bits. Note that 1 gigabyte is only 109 bits.
Let K = set of actual keys occurring. For large U, K is typically U.
Define Table T of size K (T is a hash table, where we have chopped up U).