delete method
void
delete(
- K key
Implementation
void delete(K key) {
if (!_keyToIndex.containsKey(key)) return;
final indexToDelete = _keyToIndex[key]!;
final lastIndex = _values.length - 1;
if (indexToDelete != lastIndex) {
// Swap with last element
_values[indexToDelete] = _values[lastIndex];
// Update the map for the swapped element
final swappedKey = _keyToIndex.entries
.firstWhere((entry) => entry.value == lastIndex)
.key;
_keyToIndex[swappedKey] = indexToDelete;
}
// Remove the last element and the key
_values.removeLast();
_keyToIndex.remove(key);
}