gpt4 book ai didi

java - 如何管理队列/链表的数组/数组列表?

转载 作者:行者123 更新时间:2023-12-02 06:01:32 24 4
gpt4 key购买 nike

我意识到Queue是一个接口(interface)。我的问题是这样的。我有一个队列初始化为一个月中的每一天(31)的链接列表,我需要排列它们。我在理解泛型问题时遇到问题。我的第一个想法是要么创建一个队列数组(java似乎不喜欢这个)。或者我应该创建一个 Queue 类型的 ArrayList 并将初始大小设置为 32?

如果我这样做,我将如何引用特定队列来向其中添加内容?像这样吗?:

为此,我会说我正在尝试将某人添加到第 17 天的列表中。

    ArrayList<Queue<Passenger>> lists = new ArrayList<Queue<Passenger>>(32);
Passenger person = new Passenger(first, last);
(lists.get(17)).add(person);

我觉得这会给我一个空指针异常?也许不是。非常感谢任何输入/示例代码。

最佳答案

接受数字的数组列表的构造函数决定列表的初始容量,而不是它的大小。

因此,当你这样做时:

List<Object> list = new ArrayList<Object>(32);
System.out.println(list.size()); // prints 0!

相反,通过向列表添加对象来初始化列表:

// note that passing 32 here is just an optimization; it tells the list that
// we plan to add 32 elements so that it can pre-allocate the appropriate amount
// of space. We could just as easily have done new ArrayList<Queue<Passenger>>()
List<Queue<Passenger>> queues = new ArrayList<Queue<Passenger>>(32);
for (int i = 0; i < 32; ++i) {
queues.add(new LinkedList<Passenger>());
}

// now this will work
queues.get(17).add(person);

关于java - 如何管理队列/链表的数组/数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22623983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com