动态数组(Dynamic Array)接口设计
- int size(); // 元素的数量
- boolean isEmpty(); // 是否为空
- boolean contains(E element); // 是否包含某个元素
- void add(E element); // 添加元素到最后面
- E get(int index); // 返回index位置对应的元素
- E set(int index, E element); // 设置index位置的元素
- void add(int index, E element); // 往index位置添加元素
- E remove(int index); // 删除index位置对应的元素
- int indexOf(E element); // 查看元素的位置
- void clear(); // 清除所有元素
添加元素:需要把右边的元素左移一位,涉及到扩容问题 public void add(int index,E element) { rangeCheckForAdd(index); ensureCapacity(size+1); for (int i = size; i > index; i--) { elements[i] = elements[i-1]; } elements[index] = element; size++; } 删除元素:需要把右边的元素左移一位,如果是对象,最后一位设置为null public E remove(int index) { rangeCheck(index); E old = elements[index]; for (int i = index+1; i < size; i++) { elements[i-1] = elements[i]; } elements[--size]=null; return old; }