1. /**
    2. * 返回指定元素第一次出现的下标
    3. * 如果不存在该元素,返回 -1
    4. * 如果 o ==null 会特殊处理
    5. */
    6. public int indexOf(Object o) {
    7. if (o == null) {
    8. for (int i = 0; i < size; i++)
    9. if (elementData[i]==null)
    10. return i;
    11. } else {
    12. for (int i = 0; i < size; i++)
    13. if (o.equals(elementData[i]))
    14. return i;
    15. }
    16. return -1;
    17. }
    1. public E get(int index) {
    2. rangeCheck(index);
    3. return elementData(index);
    4. }
    1. E elementData(int index) {
    2. return (E) elementData[index];
    3. }
    4. 该方法直接返回elementData数组指定下标的元素,效率还是很高的。所以ArrayListfor循环遍历效率也是很高的。