2017-03-16 32 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 –