如何为哈希表生成唯一键,并回收已删除的键?

时间:2013-11-24 20:57:22

标签: java hashmap uniqueidentifier unique-key

例如,我需要在hashmap中存储10个对象。

因此它创建了密钥1,2,3,4,5

然后,当我完成'3'时,它会删除整个条目并键入'3'。使该键能够重新用于新的对象映射 - 如果我运行,通过整数溢出或其他东西。

思想?

public static HashMap <GameKey, GameState> myMap  = new HashMap<GameKey, GameState>();
int i=0;

public void MapNewGameState(Gamestate gs){

myMap.add(i, gameStateA);
i++;
}


myMap.remove("3");
//Now I want to be sure that my MapNewGameState function is able to eventually map a new GameState to the key "3" later on,  

这是一个关于是否可以这种方式使用HashMaps的问题。

1 个答案:

答案 0 :(得分:1)

根据我的理解,你提出了一个密钥池,你可以获得密钥,如果你不再需要它,你就把它放回池中了?如果是这样,这并没有多大意义,因为它增加了代码的复杂性,但没有其他好处(通常你会创建一些昂贵的东西来创建或保存)。通常你想回收价值而不是钥匙?

要创建真正(实用)的唯一键,请使用UUID.randomUUID(),这样您就不必担心键。