2016-06-14 74 views
0

當開發一個Android應用程序時,我面臨的情況是當非空的Java ArrayList中沒有元素的索引爲零時。問題的原因與某些事實有關,因爲我有時候在列表非空時刪除了使用list.remove(0)方法的零索引項目。儘管如此,刪除方法的規範說它「將任何隨後的元素向左移(從它們的索引中減去一個)」。所以當我得到一個沒有零元素的非空列表時(第一個元素的索引爲1),我無法理解情況(有時會發生)的原因。通過在list.get(0)上獲取NullPointerException並通過在Android Studio Debugger中查看ArrayList內容,我可以看到沒有零元素。Java中沒有零項ArrayList

Debugging screenshot - ArrayList's shapshot with no zero item in Android Studio

+0

你可以發佈代碼並告訴我們它的哪一行會得到錯誤嗎? –

+0

[獲取特定的ArrayList項目]的可能的重複(http://stackoverflow.com/questions/3920602/get-specific-arraylist-item) – Vucko

+0

它不是重複的。我打電話list.get(0)得到零索引元素 – Oleg

回答

0

在非空目錄has always index 0的第一個元素。正如文件指出:

列表(像Java數組)是基於

零什麼你在調試的截圖看簡直就是可視化的方法元素呈現在列表中。所謂的1不是指數,而是指數。所以1留第一元素。

+0

但是,當我嘗試調用list.get(0)我在這種情況下,0真的應該是索引異常。我想提醒一下,沒有0元素的情況很少發生(有時並非每次)。在通常情況下(正常情況下),在調用list.remove(0)之後,我們得到列表移位並以0元素開始,因此我們可以調用get(0),但有時會發生上面描述的內容。 – Oleg

+0

檢查列表調用list.size()的大小。如果第0個元素不存在,則列表爲空。 –