我知道如何處理我的編程代碼,但我只是不知道爲什麼我們必須這樣做。實現列表ArrayList的方法
我的ArrayList類實現了一個列表< E>接口。這意味着我必須將我的List接口中的所有方法複製到我的ArrayList類中。這是爲了阻止我的ArrayList類的錯誤:「ArrayList不是抽象的,不會覆蓋抽象方法迭代器(int)」的錯誤。有人可以更詳細地向我解釋這一點嗎?
另外:當我使用的汽車在NetBeans正確的,它說每個方法之後的語句「拋出新UnsupportedOperationException異常(」尚不支持。「);」。爲什麼?
這裏是我的代碼:
public class ArrayList<E> implements List<E> {
private E[] elementData;
private int elementCount;
private int capacityIncrement;
private static final int INVALID_INDEX=-1;
private static final int DEFAULT_CAPACITY = 100;
public ArrayList() {
capacityIncrement = 0;
elementData = (E[]) new Object[DEFAULT_CAPACITY];
}
public ArrayList(int capacity) {
this.capacityIncrement = 0;
this.elementData = (E[]) new Object[capacity];
}
public ArrayList(int capacity, int increment) {
this.capacityIncrement = increment;
this.elementData = (E[]) new Object[capacity];
}
private static class ArrayListIterator<E> implements Iterator<E> {
private ArrayListIterator(ArrayList c) {
elementData = c;
}
public interface List<E> {
public int size();
public boolean isEmpty();
public void clear();
public boolean contains(E element);
public void add(E element);
public boolean remove(E element);
public E elementAt(int index);
public int indexOf(E element);
public void insertElementAt(E element, int index);
public void removeElementAt(int index);
public void setElementAt(E element, int index);
public void removeDuplicates();
public void trimToSize();
public Iterator<E> iterator();
public Iterator<E> iterator(int index);
public String toString();
}
也許看一看教程上[接口](http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)。 – Jivings 2012-03-06 15:37:58
你確定要設置'capacityIncrement = 0'嗎?這意味着,默認情況下,您的實施不會增長。當提供_negative_增量(或容量)時,'ArrayList(int,int)'怎麼辦?不要忘記你的邊界檢查!您可能會發現定義默認增量很有用,但我通常認爲它是基於百分比的。您也可能想要通過一個「基礎」構造函數來推動所有內容,其他人引用它來隱藏複雜性。 – 2012-03-06 16:54:28
看看我的答案我認爲它應該可以解決您的問題。並且介意@ X-Zero的評論。 – alexvetter 2012-03-06 17:19:34