Added TrimAndClear function into ITrimmable

This commit is contained in:
2021-05-26 13:06:52 +02:00
parent 13b2c727fc
commit 998272c8d5
9 changed files with 110 additions and 0 deletions
@@ -501,6 +501,21 @@ public class LINKED_CUSTOM_HASH_SET KEY_GENERIC_TYPE extends CUSTOM_HASH_SET KEY
firstIndex = lastIndex = -1;
}
@Override
public void clearAndTrim(int size) {
if(nullIndex <= size) {
clear();
return;
}
nullIndex = size;
mask = nullIndex - 1;
maxFill = Math.min((int)Math.ceil(nullIndex * loadFactor), nullIndex - 1);
keys = NEW_KEY_ARRAY(nullIndex + 1);
links = new long[nullIndex + 1];
firstIndex = -1;
lastIndex = -1;
}
@Override
public LIST_ITERATOR KEY_GENERIC_TYPE iterator() {
return new SetIterator();