java 动态数组

102 阅读1分钟

动态数组(Dynamic Array)接口设计

  1. int size(); // 元素的数量
  2. boolean isEmpty(); // 是否为空
  3. boolean contains(E element); // 是否包含某个元素
  4. void add(E element); // 添加元素到最后面
  5. E get(int index); // 返回index位置对应的元素
  6. E set(int index, E element); // 设置index位置的元素
  7. void add(int index, E element); // 往index位置添加元素
  8. E remove(int index); // 删除index位置对应的元素
  9. int indexOf(E element); // 查看元素的位置
  10. 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; }