java - 创建一个返回集合中所有项目的数组(链接列表)的方法

标签 java linked-list

我一直在尝试寻找此方法所遇到的错误的解决方案:

public Object[] toArray() {
        int size = 1;
        Node curr = head;

        while (curr.getNext() != null) {
            size++;
            curr = curr.getNext();
        }

        Object[] arr = new Object[size];
        arr[0] = head.getItem();

        curr = head;

        for (int i = 1; i < size; i++) {
            arr[i] = curr.getNext().getItem();
        }
        return arr;
    }

该方法的目标是简单地返回集合中所有项目的对象数组。这个方法是我的类“Set”的一部分,它是我的“LinkedList”类的子类,它使我可以访问实例变量 head。该方法将获取我的列表并将第一个元素和第二个元素添加到数组中,然后不再继续添加第三个、第四个元素等。它只是用列表中的第二个元素填充数组的其余部分。

有人能给我一些建议吗?谢谢!

最佳答案

在开始第二次迭代之前,您似乎忘记将 curr 重置回 head。否则,您将从末尾开始,而不是从头开始。

关于java - 创建一个返回集合中所有项目的数组(链接列表)的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37038294/

相关文章:

java - 为什么 printwriter 实际上不写入文件?

c - 使用 qsort 对列表进行排序?

c++ - .h 文件中的转发声明以使用友好类

c++ - 在 C++ 模板中使用运算符

c - 如何将NULL存储到节点中?

c - 从单链表中删除节点

java - 实例化 RobotFixture 的新实例以传递给构造函数

java - 测试与 WebLogic Server 的连接

java - 指定三星我的文件开始位置

java - 浏览器如何处理 HttpServletResponse