当前位置: 首页 > 知识库问答 >
问题:

java中的addFirst()。util。链表

阎嘉荣
2023-03-14

这是家庭作业。

我正在用链表做一个堆栈。我选择使用Java的Java中的链表。util。LinkedList包。当我在主类中调用addFirst()方法时,程序将无法完成。它的行为就像一个无限循环,但据我所知,没有涉及循环。代码如下:

package assignment3;

import java.util.LinkedList;

/**
 *
 * @author Eric
 */
public class LinkedListStack<T> {

    LinkedList linkedList = new LinkedList();


    public boolean isEmpty() {
     if (linkedList.isEmpty()) {
         return true;
     } else {
         return false;
     }
    }


    public int size() {
        int size = linkedList.size();

        System.out.println("The size of the stack is " + size);

        return size;
    }

// This is the problem method. 
    public void push(T element) {

        linkedList.addFirst(element);
    }


    public void pop() {
        while(!linkedList.isEmpty()){
            linkedList.removeFirst();
    }
    }


    public void peek() {
       while(!linkedList.isEmpty()){
            linkedList.peek();
        }

       System.out.println("The first element in the stack is " + linkedList.peek());
    }

}

这是调用push()方法的Main类。

package assignment3;

/**
 *
 * @author Eric
 */
public class Main {
    public static void main(String args[]) {
        LinkedListStack linkedListStack = new LinkedListStack();

        linkedListStack.push(1); // This never finishes. 
        linkedListStack.peek();
        linkedListStack.size();
}

}

测试LinkedListStack非常困难。java,因为我无法将任何内容推送到堆栈上。我不知道怎么了。

共有1个答案

章威
2023-03-14
   while(!linkedList.isEmpty()){
        linkedList.peek();
    }

peek()永远不会将链接列表从非空更改为空,因为它不会更改列表。

但据我所知,没有涉及到循环

你认为是什么?

 类似资料:
  • 我正在使用customLinkedLists的LinkedList,而我的AddFirst方法的实现遇到了一些问题。 方法如下, 问题是,每次调用它时,它都会正确地增加大小,但当我试图打印出值时,它会抛出一个空指针异常。我知道我设置头/尾指针的方式有问题,但我不知道它到底是什么。 编辑:基本上我有一个OuterList和一个自定义的LinkedList类。 在outer list类中,我有一个对象

  • 我对Java非常陌生,但我正在阅读《Java:如何编程》(第9版)一书,并且已经找到了一个例子,在我的一生中,我无法找出问题所在。 以下是教科书中源代码示例的(稍微)扩充版本: 我得到'NoSuchElementExcema'错误: 我理解这可能是由于源代码中的某些内容与,但我真的无法进一步推断问题所在。

  • 我们已经试用了一个示例程序,以了解Java 6的中和方法之间的区别。但他们似乎是一样的,有什么建议吗?

  • 问题内容: 已经尝试了一个示例程序来理解Java 6 和方法之间的区别。但是它们似乎是相同的,有什么建议吗? 问题答案: 区别在于,由于队列容量限制,添加失败时会发生什么: 引发(未经检查的)异常, 返回。 在实现的中记录了这一点。 值得注意的是,它没有容量限制,因此基本上不会抛出异常(并且总是会返回);例如,这与具有初始容量的建筑物不同。

  • 我必须实现类"DoubleChainedList"和"Elem"。DoubleChainedList管理一个双链列表,Elem是关联的节点类,指针指向后继节点和前驱节点。 我必须实施以下方法: public void removeAtIndex(int i)//删除位置i处的元素 public int[]toArray()//将列表作为数组返回 双链列表 要素: 我的问题:它显示了以下错误:hea

  • 为什么java。util。日期对象显示日期 在docs中,还有一个java。util。Date实例没有时区的概念。 如果是这样,为什么这个片段打印日期指定时区。 输出:2017年3月22日星期三14:58:56 为什么它在输出中显示特定的时区?我理解SOP在内部实现了toString()。toString()会影响时区吗?