如何创建一个List集合,在数组中盯着数据?

时间:2010-11-08 01:54:27

标签: java arrays list collections

我被赋予了一个基于简单数组创建泛型集合实现的任务。集合应该实现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吗?

2 个答案:

答案 0 :(得分:1)

从简单方法开始(例如getset)。然后转到更难的那些,看看你是否可以根据更容易的方法实现其中任何一个。如果你遇到困难,继续采用不同的方法 - 它可能会给你一些你坚持的想法。

迭代器可能是最棘手的,所以也许留下它们直到最后。提示:迭代器可能需要是内部类;知道他们在列表中的位置;并有一个回到数组的引用。

答案 1 :(得分:1)

您可以查看 java.util.ArrayList 源代码,了解一些实现模式。