@@ -76,7 +76,7 @@ public boolean add(T element) {
76
76
// Tombstone, or null.
77
77
if (isEmptyBucket (bucketIndex )) {
78
78
buckets [bucketIndex ] = element ;
79
- this . size ++;
79
+ size ++;
80
80
return true ;
81
81
}
82
82
@@ -124,7 +124,8 @@ public boolean remove(T element) {
124
124
return false ;
125
125
}
126
126
127
- if (buckets [bucketIndex ].equals (element )) {
127
+ if (buckets [bucketIndex ].equals (element )
128
+ && buckets [bucketIndex ].hashCode () == element .hashCode ()) {
128
129
buckets [bucketIndex ] = tombstone (); // Mark the current bucket with a Tombstone.
129
130
size --;
130
131
return true ;
@@ -154,7 +155,8 @@ public boolean contains(T element) {
154
155
return false ;
155
156
}
156
157
157
- if (buckets [bucketIndex ].equals (element )) {
158
+ if (buckets [bucketIndex ].equals (element )
159
+ && buckets [bucketIndex ].hashCode () == element .hashCode ()) {
158
160
return true ;
159
161
}
160
162
@@ -257,7 +259,7 @@ private int linearProbe(int hash, int collisions) {
257
259
* @return true if the bucket at the given index contains no element, false otherwise.
258
260
*/
259
261
private boolean isEmptyBucket (int bucketIndex ) {
260
- return this . isNullBucket (bucketIndex ) || isTombstoneBucket (bucketIndex );
262
+ return isNullBucket (bucketIndex ) || isTombstoneBucket (bucketIndex );
261
263
}
262
264
263
265
/**
@@ -315,7 +317,7 @@ private void resize(int newCapacity) {
315
317
* @return true if the current load factor is exceeded, false otherwise.
316
318
*/
317
319
private boolean isLoadFactorExceeded () {
318
- return this . size () >= this . capacity () * LOAD_FACTOR ;
320
+ return size () >= capacity () * LOAD_FACTOR ;
319
321
}
320
322
321
323
/**
0 commit comments