我試圖寫設置remove方法,但是當我測試它不工作。我做錯了嗎?刪除元素後尺寸不會減小。如何覆蓋Set的移除方法?
public class MySet<T> implements Set<T> {
private T[] arrayB;
private int elements;
@Override
public boolean remove(Object f) {
T h = (T) f;
for (T z : arrayB) {
if(z == h) {
z = null;
}
}
return true;
}
@Override
public int size() {
int count = 0;
for(int arr = 0; arr < arrayB.length; arr++){
if(arrayB[arr] != null) {
count++;
}
}
return count;
}
測試代碼是:
MySet<Integer> ints = new MySet<Integer>();
for (int i = 0; i < 100; i++) {
ints.add(i);
}
for (int i = 0; i < 100; i += 2) {
ints.remove(i);
}
}
在你的'刪除()',你需要使用'平等的()''而不是'==。接下來,您需要將數組索引設置爲'null',而不僅僅是臨時變量'z'。 – Nayuki
當我使用equals方法時,出現NullPointerException錯誤。我嘗試覆蓋它,但不起作用。 –