You can replace all hash tables with hash tables, but you cannot replace all hash tables with lookup tables. Thus, a lookup table can be considered as a special form of a hash table, and a hash table can be considered as a general form of a lookup table.
Similarly, a list can be considered as a special kind of 2D table (with a single column).
However, we are talking about software here. There are various options for solving this problem, as well as various options for building your data structures. For example, with a static size or dynamic growth, with the required unique records or with conflict handling, with a fixed or custom hash function, etc. There are many ways between a simple lookup table and a complete hash table without a clear boundary, where you could say here that it is, but it has become there.
However (again), when a particular data structure proves useful, it usually gets its own name. As mentioned here, this name is associated with expectations regarding functionality. There may even be a strict definition of the required minimum functionality. If you want your code to be read by others, you must adhere to well-known terms. So you have to call your lookup table into the lookup table, although technically this is a special form of the hash table.
source share