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