版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lanchunhui/article/details/82343476
0. 成员属性
transient Object[] elementData; // non-private to simplify nested class access
private static final Object[] EMPTY_ELEMENTDATA = {};
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
private static final int DEFAULT_CAPACITY = 10;
1. 泛型
- ArrayList 的泛型实现依赖内部的 Object 对象的数组;
public class ArrayList<E> {
transient Object[] elementData; // non-private to simplify nested class access
@SuppressWarnings("unchecked")
E elementData(int index) {
return (E) elementData[index];
}
}
2. contains
- 同理可知 indexOf、lastIndexOf 的实现;
public boolean contains(Object o) {
return indexOf(o) >= 0;
}
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;
}