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

标签 java arrays arraylist

我意识到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/

相关文章:

java - 编写桌面 GUI 客户端与服务器通信

java - 将数组中的字符串值传递给java中的方法?

java - 这个错误是什么意思 : java. lang.NullPointerException

java - 我可以在Java中创建不同类型的ArrayList吗

Java ArrayList 查找多个字符串

java - 如何在java中打印一个Arraylist中的单词以及另一个Arraylist中的单词

Java 和 telnet - java.net.SocketException : Broken pipe

java - 在 Spring Security 登录期间设置 Grails/Spring Locale - 如何?

Java Swing - JPanel 的背景

javascript - 从 JSON 创建 jQuery 数组