2010-11-08 67 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)。然後轉向更難的人,看看你是否能夠以更簡單的方式實施他們中的任何一個。如果你陷入困境,繼續採用另一種方法 - 它可能會給你一些你堅持的想法。

迭代器可能是最棘手的,所以也許將它們留到最後。提示:迭代器可能需要成爲內部類;知道他們在列表中的位置;並有一個參考返回到數組。