写个大意
- class ArrayList {
- private Object[] elements;
- private int size;
-
- ArrayList() {
- elements = new Object[16]; // 先设定一个固定长度的数组
- size = 0;
- }
-
- public void add(Object obj) {
- // 如果元素个数不超过数组长度,直接添加新元素
- if (size < elements.length)
- elements[size++] = obj;
- else { // 如果数组满了,新建一个更长的数组,把原数组的元素copy到新数组,再添加元素
- Object[] newElements = new Object[size * 2];
- System.arraycopy(elements, 0, newElements, 0, size);
- elements = newElements;
- elements[size++] = obj;
- }
- }
- }
复制代码 |