3

次のような状況を想像してください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ますか?

4

1 に答える 1