2016-06-14 15 views
0

Android Appを開発するとき、インデックスがゼロでない空のJava ArrayListに要素がない場合に直面しました。この問題の理由は、何らかの形で、リストが空でない場合、ゼロインデックスされたアイテムをlist.remove(0)メソッドで削除することがあります。それにもかかわらず、removeメソッドの仕様では、「後続の要素はすべて左にシフトします(インデックスから1を引く」)。だから私は、ゼロ要素を持たない空でないリスト(最初の要素はインデックス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番目の要素が存在しない場合、リストは空です。 –

関連する問題