想象一下这样的情况:我有一个HashMap<Integer, String>
,我在其中存储连接的客户端。是的HashMap
,因为顺序无关紧要,我需要速度。它看起来像这样:
{
3: "John",
528: "Bob",
712: "Sue"
}
大多数客户断开连接,所以这就是我有很大差距的原因。如果我想添加一个新客户端,我需要一个密钥,显然_map.size()
获取密钥的用法不正确。
所以,目前我使用这个函数来获取他最低的可用密钥:
private int lowestAvailableKey(HashMap<?, ?> _map) {
if (_map.isEmpty() == false) {
for (int i = 0; i <= _map.size(); i++) {
if (_map.containsKey(i) == false) {
return i;
}
}
}
return 0;
}
在某些情况下,这真的很慢。有没有更快或更专业的方法来获得最低的免费密钥HashMap
?