More fixes.
- Fixed: containsKey & containsValue in HashMaps were deprecated for Object Variants. - Fixed: HashMap wasn't deleting Keys & Values references when removing a Object - Fixed: AVLTreeMap didn't balance properly. - Changed: EnumMap no longer tries to access SharedSecrets since its gone in java11 - Added: HashMaps now implement ITrimmable - Added: AVLTreeSet didn't balance properly - Fixed: HashMaps & LinkedMaps weren't clearing references properly.
This commit is contained in:
+1
-1
@@ -481,7 +481,7 @@ public class LINKED_CUSTOM_HASH_MAP KEY_VALUE_GENERIC_TYPE extends CUSTOM_HASH_M
|
||||
}
|
||||
else if(lastIndex == pos) {
|
||||
lastIndex = (int)(links[pos] >>> 32);
|
||||
if(0 <= lastIndex) links[pos] |= 0xFFFFFFFFL;
|
||||
if(0 <= lastIndex) links[lastIndex] |= 0xFFFFFFFFL;
|
||||
}
|
||||
else {
|
||||
long link = links[pos];
|
||||
|
||||
+1
@@ -566,6 +566,7 @@ public class CUSTOM_HASH_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VAL
|
||||
}
|
||||
|
||||
protected VALUE_TYPE removeIndex(int pos) {
|
||||
if(pos == nullIndex) return containsNull ? removeNullIndex() : getDefaultReturnValue();
|
||||
VALUE_TYPE value = values[pos];
|
||||
keys[pos] = EMPTY_KEY_VALUE;
|
||||
values[pos] = EMPTY_VALUE;
|
||||
|
||||
+1
-1
@@ -461,7 +461,7 @@ public class LINKED_HASH_MAP KEY_VALUE_GENERIC_TYPE extends HASH_MAP KEY_VALUE_G
|
||||
}
|
||||
else if(lastIndex == pos) {
|
||||
lastIndex = (int)(links[pos] >>> 32);
|
||||
if(0 <= lastIndex) links[pos] |= 0xFFFFFFFFL;
|
||||
if(0 <= lastIndex) links[lastIndex] |= 0xFFFFFFFFL;
|
||||
}
|
||||
else {
|
||||
long link = links[pos];
|
||||
|
||||
+1
@@ -526,6 +526,7 @@ public class HASH_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VALUE_GENE
|
||||
}
|
||||
|
||||
protected VALUE_TYPE removeIndex(int pos) {
|
||||
if(pos == nullIndex) return containsNull ? removeNullIndex() : getDefaultReturnValue();
|
||||
VALUE_TYPE value = values[pos];
|
||||
keys[pos] = EMPTY_KEY_VALUE;
|
||||
values[pos] = EMPTY_VALUE;
|
||||
|
||||
+1
-1
@@ -280,7 +280,7 @@ public class LINKED_ENUM_MAP KEY_ENUM_VALUE_GENERIC_TYPE extends ENUM_MAP KEY_VA
|
||||
}
|
||||
else if(lastIndex == pos) {
|
||||
lastIndex = (int)(links[pos] >>> 32);
|
||||
if(0 <= lastIndex) links[pos] |= 0xFFFFFFFFL;
|
||||
if(0 <= lastIndex) links[lastIndex] |= 0xFFFFFFFFL;
|
||||
}
|
||||
else {
|
||||
long link = links[pos];
|
||||
|
||||
+5
-1
@@ -801,6 +801,8 @@ public class AVL_TREE_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VALUE_
|
||||
else entry.parent.right = right;
|
||||
right.left = entry;
|
||||
entry.parent = right;
|
||||
entry.updateHeight();
|
||||
right.updateHeight();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -815,6 +817,8 @@ public class AVL_TREE_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VALUE_
|
||||
else entry.parent.left = left;
|
||||
left.right = entry;
|
||||
entry.parent = left;
|
||||
entry.updateHeight();
|
||||
left.updateHeight();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1933,7 +1937,7 @@ public class AVL_TREE_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VALUE_
|
||||
|
||||
void updateHeight() { state = (1 + Math.max(left == null ? -1 : left.getHeight(), right == null ? -1 : right.getHeight())); }
|
||||
|
||||
int getBalance() { return (left == null ? -1 : left.getHeight()) - (right == null ? -1 : right.getBalance()); }
|
||||
int getBalance() { return (left == null ? -1 : left.getHeight()) - (right == null ? -1 : right.getHeight()); }
|
||||
|
||||
boolean needsSuccessor() { return left != null && right != null; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user