创建 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
我需要创建并使用 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