我被赋予了一个基于简单数组创建泛型集合实现的任务。集合应该实现List接口。目前我有:
import java.util.*;
import java.util.List;
import java.util.ArrayList;
import java.util.ListIterator;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {}
}
class MyCollection<T> implements List<T>{
T[] tab;
MyCollection() {
this.tab = (T[])new Object[10];
}
public List subList(int from, int to){
return new ArrayList();
}
public <T> T[] toArray(T[] t){}
public T[] toArray(){}
public ListIterator listIterator(){}
public ListIterator listIterator(int i){}
public Iterator iterator(){}
public boolean contains(){}
public boolean contains(Object o){}
public boolean isEmpty(){}
public int size(){}
public int lastIndexOf(Object o){}
public int indexOf(Object o){}
public T remove(int i){}
public boolean remove(Object o){}
public void clear(){}
public void add(int i, T t){}
public boolean add(T t){}
public T set(int i, T t ){}
public T get(int i){}
public boolean retainAll(Collection c){}
public boolean removeAll(Collection c){}
public boolean addAll(int i, Collection c){}
public boolean addAll(Collection c){}
public boolean containsAll(Collection c){}
}
如果我的数据存储在数组中,如何实现所需的方法?例如,我可以为数组编写listIterator吗?
答案 0 :(得分:1)
从简单方法开始(例如get
和set
)。然后转到更难的那些,看看你是否可以根据更容易的方法实现其中任何一个。如果你遇到困难,继续采用不同的方法 - 它可能会给你一些你坚持的想法。
迭代器可能是最棘手的,所以也许留下它们直到最后。提示:迭代器可能需要是内部类;知道他们在列表中的位置;并有一个回到数组的引用。
答案 1 :(得分:1)
您可以查看 java.util.ArrayList 源代码,了解一些实现模式。