我用Java制作的链表抛出了OfMemory错误
在这里,我试图用Java实现链表代码,但它给了我内存不足的异常 线程“main”java.lang.OutOfMemoryError中出现异常:java堆空间,我在调试时发现,第一个线程中的下一个线程仅指向第一个线程,无法找到它的位置。当在add方法中调试时,它显示了正确的链接列表,但是当它返回到main方法时,它是不同的,在这方面有人可以帮助我吗我用Java制作的链表抛出了OfMemory错误,java,linked-list,jvm,out-of-memory,Java,Linked List,Jvm,Out Of Memory,在这里,我试图用Java实现链表代码,但它给了我内存不足的异常 线程“main”java.lang.OutOfMemoryError中出现异常:java堆空间,我在调试时发现,第一个线程中的下一个线程仅指向第一个线程,无法找到它的位置。当在add方法中调试时,它显示了正确的链接列表,但是当它返回到main方法时,它是不同的,在这方面有人可以帮助我吗 public class LinkedListSolution { public static void main(String[] ar
public class LinkedListSolution {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.add(1);
list.add(6);
list.add(2);
list.add(3);
list.add(4);
}
}
class LinkedList{
Node first;
public void add(Integer element){
Node last;
if(first == null){
first = new Node();
first.element = element;
first.next = null;
}else{
last = first;
while(last.next != null){
last = last.next;
}
Node node = new Node();
node.element = element;
last.next = node;
}
}
}
class Node{
Integer element;
Node next;
}
您没有坐在下一个元素上,新元素为null:node.next=null强>
while(last.next != null){
last = last.next;
}
Node node = new Node();
node.element = element;
node.next = null;
last.next = node;
这就是为什么当(last.next!=null)尝试添加第二个元素时,该条件将抛出内存不足异常无法复制。我在Java 8版本jdk1.8.0中这样做是为了second@JCWasmx86,请参阅没有问题的运行。类类型的实例级别变量的默认值为null,这就是我没有添加节点的原因。next=null;所以这里不需要这个语句。实例变量的默认值为null。局部变量(在方法中声明)没有默认值,甚至没有null值。尝试将node.next设置为null。并让我知道它是否工作,但我已编写last=new Node();因此,我在最后一个变量中有一个对象,该对象下一个变量是实例级变量,默认情况下,该变量为null。