Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我用Java制作的链表抛出了OfMemory错误_Java_Linked List_Jvm_Out Of Memory - Fatal编程技术网

我用Java制作的链表抛出了OfMemory错误

我用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

在这里,我试图用Java实现链表代码,但它给了我内存不足的异常 线程“main”java.lang.OutOfMemoryError中出现异常:java堆空间,我在调试时发现,第一个线程中的下一个线程仅指向第一个线程,无法找到它的位置。当在add方法中调试时,它显示了正确的链接列表,但是当它返回到main方法时,它是不同的,在这方面有人可以帮助我吗

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。