arraylist.java

来自「java版的数据结构的完全代码 免费提供了 学习数据结构的请下载」· Java 代码 · 共 99 行

JAVA
99
字号
// Introduced in Chapter 5/** An array-based List. */public class ArrayList<E> implements List<E> {  /** Array of elements in this List. */  private E[] data;  /** Number of elements currently in this List. */  private int size;  /** The List is initially empty. */  public ArrayList() {    data = (E[])(new Object[1]); // This causes a compiler warning    size = 0;  }  public void add(E target) {    if (isFull()) {      stretch();    }    data[size] = target;    size++;  }    public boolean contains(E target) {    for (int i = 0; i < size; i++) {      if (data[i].equals(target)) {        return true;      }    }    return false;  }  public boolean isEmpty() {    return size == 0;  }  /** Return true if data is full. */  protected boolean isFull() {    return size == data.length;  }  public java.util.Iterator<E> iterator() {    return new ArrayIterator<E>(this);  }  public E get(int index) {    return data[index];  }  public E remove(int index) {    E result = data[index];    for (int i = index + 1; i < size; i++) {      data[i - 1] = data[i];    }    size--;    return result;  }  public boolean remove(E target) {    for (int i = 0; i < size; i++) {      if (data[i].equals(target)) {        for (int j = i; j < size - 1; j++) {          data[j] = data[j + 1];        }        size--;        return true;       }    }    return false;  }  public void set(int index, E target) {    data[index] = target;  }    public int size() {    return size;  }  /** Double the length of data. */  protected void stretch() {    E[] newData = (E[])(new Object[data.length * 2]); // Warning    for (int i = 0; i < data.length; i++) {      newData[i] = data[i];    }    data = newData;  }  public String toString() {    String result = "[ ";    for (int i = 0; i < size; i++) {      result += data[i] + " ";    }    return result + "]";  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?