2015-09-21 19 views
-3

我試過編寫代碼,刪除Arraylist中的所有元素而不使用clear()和remove()。或不管從類ArrayList中如何從Arraylist中刪除元素而不使用clear()或其他方法?

看看我的代碼:

for (int i=0 ; i<a.size(); i++) 
        a.get(i) =null ; 

,但我有一個錯誤:

賦值的左邊必須是一個變量

什麼想法?

+0

即使Java的有一個索引語法,你都將只設置'null'在該列表中的位置提示。這與「刪除」不一樣。 –

+0

如果列表具有「清除」方法,那是有原因的。按照原樣學習並使用它的方法,或根本不使用該類 – Dici

回答

1

a.get()將返回一個值而非參考保留者即「=」運算符的左側操作數應該是某個變量,它可以保存由等號運算符的右側表達式給出的結果。

內部ArrayList將在其實現中具有每個元素,並且不使用Collection的Arraylist API,即remove()clear(),您將無法刪除其任何項目。

+0

* value *和* variable *之間有什麼不同?我認爲你的意思是指針或類似的東西 – Dici

+0

是的。平等運營商的左側必須是變量或參考持有者。 – rajuGT

+0

@Dici但是如果我們使用這個'a.set(i,null)',arrayList的大小將不會改變,因爲數組將用空值替換原始值。 – rajuGT

1

首先,將它設置爲null不會刪除元素。相反,它只會將其設置爲值爲null的元素。

如果你想刪除元素,你應該使用。或者清楚,所有這些。

如果你想將它們設置爲空,使用a.set(i, null)

+0

僅供參考:但如果我們使用'a.set(i,null)',arrayList的大小將不會改變,因爲數組將用空值替換原始值。 – rajuGT

+0

因此,限定詞「如果您希望將它們設置爲空」,作爲第一段的後續和第二段的替代(這是要刪除元素的情況)。在我的回答中我清楚這一點。 – JArkinstall

相關問題