源码如下所示:
public int indexOf(Object o) { if (o == null) { for (int i = 0; i < size; i++) if (elementData[i]==null) return i; } else { for (int i = 0; i < size; i++) if (o.equals(elementData[i])) return i; } return -1; }indexOf方法是返回某元素在ArrayList对象里的下标(索引)。
分析:
区分两种情况
查询元素为null时,使用==运算符进行判断,返回索引
非null元素时,使用equals()方法来判断(ps:由此处调用的equals()方法,可以看出为什么不支持基本类型的元素)
当查询的元素不存在列表中,返回-1
ArrayList中还有很多方法,篇幅有限,在此不再赘述。
6. 总结ArrayList是开发中用的最多了一个集合类了,很多时候我们只是停留在使用上面,没有深入的去学习,分析,为什么是这样?为什么会这样?有时候遇到问题了,也只能两眼一抹黑,不知道具体原因是什么,多看源码,多学习,提高解决问题的能力,一点点的进步,就好。