创建 Deques 数组

Creating an array of Deques

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

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

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

我也试过了:

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

其中 returns 一个 NullPointerException。我怎样才能创建这个数组?

您需要将 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>());
}

为什么不使用 ArrayDeque

你可以使用这个:

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

或者这个:

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

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