我需要创建并使用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。我该如何创建这个数组?
答案 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