从用户定义的链表中删除节点后的无限循环(java)

从用户定义的链表中删除节点后的无限循环(java),java,linked-list,nodes,infinite-loop,user-defined,Java,Linked List,Nodes,Infinite Loop,User Defined,我在一个名为dropClass的方法中有这段代码,它应该从 链表和它的工作,但当我试图打印它在toString我陷入了一个无限 循环,我发现代码行是follow.setNext(当前)这似乎是导致 无限循环,但我不知道该怎么做来修复,如果我取出它,它不会删除 节点但是打印正确,这里是无限循环发生的地方 public void dropCourse(String c) { if(isEmpty()) throw new NoSuchElementException("Emp

我在一个名为
dropClass
的方法中有这段代码,它应该从

链表和它的工作,但当我试图打印它在
toString
我陷入了一个无限

循环,我发现代码行是
follow.setNext(当前)这似乎是导致

无限循环,但我不知道该怎么做来修复,如果我取出它,它不会删除

节点但是打印正确,这里是无限循环发生的地方

public void dropCourse(String c)
{
    if(isEmpty())
        throw new NoSuchElementException("Empty Schedule");
    Node current = firstNode;
    Node follow = firstNode;
    follow = follow.getNext();
    current = current.getNext();
    while(!current.getClasses().equals(c) && current != null)
    {
        follow = current.getNext();
        current.setNext(follow.getNext());
        follow = null;
    }
    if(current.getClasses().equals(c))
    {
        follow.setNext(current);
        System.out.println("Class removed");
    }
}
循环在
之后开始,而(current!=null)
时,如果我不删除节点,它可以完美地工作。有人能解释我在删除节点时做错了什么吗

编辑:setNext方法主体

//Reads schedule
public String toString()
{
    if(isEmpty())
        return " ";
    else
    {
        String s = " ";
        Node current = firstNode;
        System.out.print("ID:");
        System.out.print(current.getId());
        current = current.getNext();
        while(current != null)
        {

            s = s + "Class:"
                  + current.getClasses()
                  + " Section:"
                  + current.getSection()
                  + " Credits:"
                  + current.getCredit()
                  + " ";
            current = current.getNext();

        }
        return s;
    }
}
还有我用来打印链接列表的循环

public void setNext(Node next)
{
    this.next = next;
}

for(int j=0;jShow setNext方法的主体。好的,我更新了我的postWhy,将列表元素存储在一个数组中?为什么不使用
getNext()
方法来迭代列表?数组的每个元素都是一个特殊的链表,列表[1]例如,包含一个链接列表,其中一个节点包含学生id,另一个节点包含关于他们正在学习的课程的信息,而列表[2]会有不同的id和不同的课程信息为什么不定义一个包含您感兴趣的字段的类,并将列表元素保存到单个对象,而不是使用列表列表来实现这一点?
            for(int j = 0;j<list.length;j++)
            {
                one = list[j];
                System.out.println(one);
            }