2010-11-08 66 views
0

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

你已经开始使用圈子。现在是时候画出猫头鹰的其余部分了! http://theord.com/wp-content/uploads/2010/08/drawOwl.png – DennyRolling 2010-11-08 01:59:50

+0

这是功课吗?如果不是,答案是'ArrayList'。 – 2010-11-08 02:21:42

回答

1

您可以查看java.util.ArrayList某些实现模式的源代码。

1

从简单的方法开始(例如getset)。然后转向更难的人,看看你是否能够以更简单的方式实施他们中的任何一个。如果你陷入困境,继续采用另一种方法 - 它可能会给你一些你坚持的想法。

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