Java ArrayList可以为空,indexOf是否返回索引?

时间:2014-11-11 17:54:58

标签: java android arraylist

我在Java for Android中有以下代码段:

int index = oldArray.indexOf(person);
if (index == -1) {
    Log.d("Tag", "TESI index == -1");
}
else {
    oldArray.remove(index);  <--- error is here
    newArray.add(person);
}

我收到了以下异常

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
at com.tesi.salus.PersonView.updatePerson(PersonView.java:406) [line 406 is the remove]

我的问题是这怎么可能?

如果我理解得很清楚,如果oldArray为空,则index应为-1,而不是0.

或者,我错过了什么?

感谢。

==================

感谢您的回答。

我只有一个帖子。

oldArray声明为:

public ArrayList oldArray<Person>;

并在下面初始化为:

oldArray = new ArrayList();

1 个答案:

答案 0 :(得分:0)

如果对象为null,它将找到null的索引(在空列表中为零)

添加一个nullcheck,它应该可以正常工作