想象一下这样的情况:
我有一个
在某些情况下,这种方法真的很慢。有没有更快或更专业的方法来获取
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
中最低的空闲键?
HashMap
,而改用TreeMap
。这样可以按照键的自然顺序迭代键。更多阅读:https://dev59.com/WnNA5IYBdhLWcg3wh-cC - Colin Basnett