I'm currently programming an AI for the game called Lines of Action. As I was looking into how to optimize my program, I learned about alpha-beta pruning, which I have implemented, and I now am looking to implement a transposition table. I have implemented the Zobrist hashing part, but I am not sure how I should store the hash key and the corresponding value object that is meant to store the depth, best move, flag, and score. I think I should be using a hash table or an array, but I am not sure how this should be done. Also, apparently since the game states will eventually lead to an overload of memory, I understand that there has to be some sort of replacement scheme. I would appreciate if someone could either provide a naive implementation or point me in the direction of some resource that explains some of the schemes.
Additionally, I was wondering if always starting with the bestMove stored in the transposition table would work as move ordering, or should I be using some other method to choose the first moves?