gpt4 book ai didi

java - 确定 Java HashMap 中最低可用键的最快方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:04 24 4
gpt4 key购买 nike

想象一下这样的情况:我有一个 HashMap<Integer, String> ,我在其中存储连接的客户端。是HashMap ,因为顺序无关紧要,我需要速度。它看起来像这样:

{
3: "John",
528: "Bob",
712: "Sue"
}

大多数客户端断开连接,所以这就是我有很大差距的原因。如果我想添加一个新客户端,我需要一个 key ,显然需要使用 _map.size()获取 key 是不正确的。

所以,目前我使用这个函数来获取最低的可用键:

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 的最低免费 key ? ?

最佳答案

有什么理由使用 HashMap 吗?如果您使用 TreeMap相反, map 将自动按键排序。是的,您最终得到 O(log n) 访问而不是 O(1),但这是最明显的方法。

当然,您始终可以同时维护HashMap TreeSet,确保同时添加条目和删除条目,如果你真的需要。 TreeSet 将充本地图的一组有序键。

关于java - 确定 Java HashMap 中最低可用键的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com