编辑:不知道为什么,但代码现在似乎无需任何编辑即可运行。可能是 jGrasp 调试器有问题?
===
好的。所以这是我的家庭作业,将在 2 周后布置,但我想抢先一步。请不要更正我的代码,或分享正确的代码。如果您能指出我正在做的事情中的错误,那就太好了。
所以我有一个 node
具有以下构造函数:
public node(String name)
public node(String name, node next)
我需要写一个方法 public method(ArrayList<String> names)
在一个单独的类中,该类将添加来自 names
的所有元素进入链表。
这是我现在拥有的:
public method(ArrayList<String> names) {
if(names.size() == 0 || names == null) {
throw new IllegalArgumentException();
}
// Handle base case, create first node
first = new node(names.get(0)); // first has been declared above
node current = first;
// Add at the end of the list
for(int i = 1; i < names.size(); i++) {
current.next = new node(names.get(i));
current = current.next;
}
}
我不确定为什么这不能按要求工作。我正在使用 jGrasp,并使用调试器,我看到最后我得到了一个只有 1 个值的链表(ArrayList 中的最后一个元素)。为什么?
请不要推荐使用任何高级功能,因为我是 Java 的新手,使用任何进一步的高级功能只会让我感到困惑。
最佳答案
我认为您正在从该方法返回最后一个节点,而您需要返回第一个节点,因为它包含所有进一步链接的节点。您应该返回第一个节点而不是当前节点。
如果您仍然有问题,请告诉我们您如何测试它以得出它只包含最后一个元素的结论。
关于java - 尝试将 ArrayList 转换为 LinkedList。不知道为什么这不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14421774/