2017-03-16 28 views
0

數組我需要創建和使用雙端陣列,像下面創建雙端

Deque<Point>[] saved = new LinkedList<Point>[12]; 

該代碼產生一個錯誤,因爲Java不允許你創建雙端的通用陣列。有沒有辦法設置Deques數組,以便在需要時可以訪問每個Deque?

我也試過:

Deque<Point>[] saved; 
//.... 
for(int i = 0;i<12;i++) 
{ 
    saved[i] = new LinkedList<Point>; 
} 

它返回一個NullPointerException。我怎樣才能創建這個數組?

+0

@Jens恐怕不行,我會得到相同的「不能創建一個Deque 「 – imulsion

+1

」的通用數組「Deque [] saved = new Deque [12];'.... – KarelG

回答

1

需要初始化savedArrayList

// Note that saved has a size defined at construction, 
// which makes this efficient. 
final List<Deque<Point>> saved = new ArrayList<Deque<Point>>(12); 
for (int i = 0; i < 12; i++) { 
    saved.add(new LinkedList<Point>()); 
} 
+1

不起作用我是Afra身份證,我得到了關於不能創建一個Deque imulsion

+0

的通用數組相同的投訴啊,當然。在構造中定義大小的'ArrayList'應該很好。更新了答案。 – sdgfsdh

+0

@imulsion該代碼中沒有創建數組。哪行代碼會給你這個錯誤? – VGR

1

爲什麼你不使用ArrayDeque

您可以使用此:

ArrayDeque arr = new ArrayDeque<Point>(12); 

或者這樣:

LinkedList l = new LinkedList<Point>(); 
ArrayDeque arr = new ArrayDeque(l); 

這裏有一個很好的教程Java.util.ArrayDeque Class

+0

我在想同樣的事情。 ArrayDeque是一個使用數組的快速Deque操作。 –

+0

謝謝@ M.Situation –