2016-06-14 5 views
0

Android 앱을 개발할 때 비어 있지 않은 Java ArrayList에 인덱스가없는 요소가없는 상황에 직면했습니다. 그 이유는 목록이 비어있을 때 list.remove (0) 메서드를 사용하여 0으로 인덱싱 된 항목을 삭제하는 경우가 종종 있습니다. 그럼에도 불구하고 remove 메소드에 대한 명세는 "후속 요소를 왼쪽으로 이동 (해당 인덱스에서 하나 빼기)"합니다. 그래서 제로 요소가없는 비어 있지 않은 목록을 얻을 때 (때로는 발생하는) 상황의 원인을 이해할 수 없습니다 (첫 번째 요소에는 인덱스 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)을 호출하여 0으로 인덱싱 된 요소를 가져옵니다. – Oleg

답변

0

빈되지 목록 has always index 0의 첫 번째 요소입니다. 설명서에서 언급 한 바와 같이 (자바 배열과 같은)

목록

를 기반으로 제로는 당신이 당신의 디버깅 스크린 샷에서 보는 것은 단순히 목록에 제시 요소를 시각화하는 방법입니다 수 있습니다. 1은 색인이 아니라 위치입니다. 그래서 첫 번째 요소에 1 머물러 라.

+0

그러나 list.get (0)을 호출하려고하면이 경우 예외가 발생합니다. 여기서는 0이 실제로 인덱스로 간주됩니다. 나는 0 요소가없는 상황이 거의 발생하지 않는다는 것을 상기시키고 싶다. 일반적으로 list.remove (0)을 호출 한 직후의 일반적인 경우에는 0 요소로 시작하여 목록을 가져와 get (0)을 호출 할 수 있지만 위에서 설명한 내용이 때때로 발생합니다. – Oleg

+0

list.size()를 호출하는 목록의 크기를 확인하십시오. 0 번째 요소가 없으면 목록은 비어 있습니다. –

관련 문제