我知道如何处理我的编程代码,但我只是不知道为什么我们必须这样做。实现列表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