创建一个Deques数组

时间:2017-03-16 13:07:17

标签: java arrays deque

我需要创建并使用Deques数组,如下所示

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

此代码导致错误,因为Java不允许您创建Deques的通用数组。有没有办法设置Deques数组,以便我可以在需要时访问每个Deque?

我也尝试过:

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

返回NullPointerException。我该如何创建这个数组?

2 个答案:

答案 0 :(得分:1)

您需要将saved初始化为ArrayList

// 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 :(得分:1)

为什么不使用ArrayDeque

您可以使用:

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

或者这个:

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

这里有一个很好的教程Java.util.ArrayDeque Class