Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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.util; 公众的 类堆栈扩展向量{ 公共堆栈(){ } 公共电子推送(电子项目){ 增编(项目); 退货项目; } 公共同步E-pop(){ E obj; int len=大小(); obj=peek(); removeElementAt(len-1); 返回obj; } 公共同步E peek(){ int len=大小(); 如果(len==0) 抛出新的EmptyStackException(); 返回元素at(len-1); } 公共同步整数搜索(对象o){ int i=最后的指数f(o); 如果(i>=0){ 返回大小()-i; } 返回-1; } 私有静态最终长serialVersionUID=1224463164541339165L; }_Java_Stack - Fatal编程技术网

这是堆栈还是堆栈模拟? 包java.util; 公众的 类堆栈扩展向量{ 公共堆栈(){ } 公共电子推送(电子项目){ 增编(项目); 退货项目; } 公共同步E-pop(){ E obj; int len=大小(); obj=peek(); removeElementAt(len-1); 返回obj; } 公共同步E peek(){ int len=大小(); 如果(len==0) 抛出新的EmptyStackException(); 返回元素at(len-1); } 公共同步整数搜索(对象o){ int i=最后的指数f(o); 如果(i>=0){ 返回大小()-i; } 返回-1; } 私有静态最终长serialVersionUID=1224463164541339165L; }

这是堆栈还是堆栈模拟? 包java.util; 公众的 类堆栈扩展向量{ 公共堆栈(){ } 公共电子推送(电子项目){ 增编(项目); 退货项目; } 公共同步E-pop(){ E obj; int len=大小(); obj=peek(); removeElementAt(len-1); 返回obj; } 公共同步E peek(){ int len=大小(); 如果(len==0) 抛出新的EmptyStackException(); 返回元素at(len-1); } 公共同步整数搜索(对象o){ int i=最后的指数f(o); 如果(i>=0){ 返回大小()-i; } 返回-1; } 私有静态最终长serialVersionUID=1224463164541339165L; },java,stack,Java,Stack,上面是堆栈的java源代码。 我意识到它只是在模仿一个堆栈,而不是一个真正的堆栈 我说这只是对Stack的模仿,而不是真实的,对吗 如果我可以这样说,并且我想从头开始构建它,我会怎么做?(固定大小的数组或反过来使用列表(单/双链接)的arraylist) 没有“真正的堆栈”,堆栈只是一个想法,一个所谓的。它支持推送和弹出两种操作,元素的顺序定义为后进先出(LIFO)。除了java.util.Stack(基于向量,基于数组),还有java.util.LinkedList(一个双链接列表),它也支持

上面是堆栈的java源代码。 我意识到它只是在模仿一个堆栈,而不是一个真正的堆栈

  • 我说这只是对Stack的模仿,而不是真实的,对吗
  • 如果我可以这样说,并且我想从头开始构建它,我会怎么做?(固定大小的数组或反过来使用列表(单/双链接)的arraylist)
  • 没有“真正的堆栈”,堆栈只是一个想法,一个所谓的。它支持推送和弹出两种操作,元素的顺序定义为后进先出(LIFO)。除了java.util.Stack(基于向量,基于数组),还有java.util.LinkedList(一个双链接列表),它也支持堆栈操作,因此它也是一个堆栈,与另一个堆栈一样。。还有其他几个实现,例如java.util.Deque的所有实现

  • 你可以通过多种方式从头开始,每种方式都有自己的权衡。你的问题不足以给出一个好的答案

  • 没有“真正的堆栈”,堆栈只是一个想法,一个所谓的。它支持推送和弹出两种操作,元素的顺序定义为后进先出(LIFO)。除了java.util.Stack(基于向量,基于数组),还有java.util.LinkedList(一个双链接列表),它也支持堆栈操作,因此它也是一个堆栈,与另一个堆栈一样。。还有其他几个实现,例如java.util.Deque的所有实现

  • 你可以通过多种方式从头开始,每种方式都有自己的权衡。你的问题不足以给出一个好的答案


  • 上面是一个链接,指向grepcode中名为stack的所有内容。你到底在问什么?
    java.util.Stack
    是堆栈数据结构的实现。我不确定你所说的“模拟”是什么意思。我的意思是,在基本层面上,我认为堆栈应该运行在数组上,而数组反过来又运行在对内存的引用上。因此,上面的类实现了列表和集合。下面是我上面的问题。上面是一个链接,指向所有在grepcode中被称为stack的东西。你到底在问什么?
    java.util.Stack
    是堆栈数据结构的实现。我不确定你所说的“模拟”是什么意思。我的意思是,在基本层面上,我认为堆栈应该运行在数组上,而数组反过来又运行在对内存的引用上。因此,上面的类实现了列表和集合。从这里,我的问题如下。我理解。下面是我的参数java.util.Stack实现了链表,链表主要是队列。因此,这种抽象数据类型应该有独立的实现。但这并不是这里发生的事情。因此我说它是在模仿堆栈。不管它是否主要是X,甚至也不可能说LinkedList主要是队列、堆栈、数据块还是列表——都是这些,因为你可以将其用作所有这些。如果LinkedList是在“模仿堆栈”,那么所有的堆栈实现都是“模仿堆栈”。如果LinkedList“是堆栈”,则所有堆栈实现都是堆栈你所做的区分没有意义,因为堆栈只是一个想法,一个合同,一个协议,如果你愿意的话。您可以使用打印机、机械臂和扫描仪实现堆栈,这将是非常复杂和低效的,但您可以,而且它仍然是/模拟堆栈,与LinkedList完全相同。谢谢!所以,这些只是在必要的情况下实施的想法。我理解。下面是我的参数java.util.Stack实现了链表,链表主要是队列。因此,这种抽象数据类型应该有独立的实现。但这并不是这里发生的事情。因此我说它是在模仿堆栈。不管它是否主要是X,甚至也不可能说LinkedList主要是队列、堆栈、数据块还是列表——都是这些,因为你可以将其用作所有这些。如果LinkedList是在“模仿堆栈”,那么所有的堆栈实现都是“模仿堆栈”。如果LinkedList“是堆栈”,则所有堆栈实现都是堆栈你所做的区分没有意义,因为堆栈只是一个想法,一个合同,一个协议,如果你愿意的话。您可以使用打印机、机械臂和扫描仪实现堆栈,这将是非常复杂和低效的,但您可以,而且它仍然是/模拟堆栈,与LinkedList完全相同。谢谢!因此,这些只是以任何必要的方式实施的想法。
    package java.util;
    public
    class Stack<E> extends Vector<E> {
        public Stack() {
        }
    
        public E push(E item) {
            addElement(item);
            return item;
        }
    
        public synchronized E pop() {
            E obj;
            int len = size();
    
            obj = peek();
            removeElementAt(len - 1);
    
            return obj;
        }
    
        public synchronized E peek() {
            int     len = size();
    
            if (len == 0)
                throw new EmptyStackException();
            return elementAt(len - 1);
        }
    
        public synchronized int search(Object o) {
            int i = lastIndexOf(o);
    
            if (i >= 0) {
                return size() - i;
            }
            return -1;
        }
    
    
        private static final long serialVersionUID = 1224463164541339165L;
    }