举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > javastack类用哪种类代替 Java Stack 类

javastack类用哪种类代替 Java Stack 类

2023-03-09 06:20 Java教程

javastack类用哪种类代替 Java Stack 类

javastack类用哪种类代替

JavaStack类是一种用于实现栈的数据结构,它可以用来存储和检索数据。它的主要特性是先进后出(LIFO),即最后被放入栈中的元素最先被取出。JavaStack类使用了链表来实现栈的功能,但是它也有一些局限性。

因此,可以使用ArrayDeque来代替JavaStack类。ArrayDeque是一个双端队列,它使用动态数组来存储数据。ArrayDeque不仅可以作为栈使用,还可以作为队列使用。此外,ArrayDeque还具有较高的内存利用率和较低的时间复杂度。

// 使用 ArrayDeque 来代替 JavaStack 类 
ArrayDeque<Integer> stack = new ArrayDeque<Integer>(); 
// 压入栈 
stack.push(1); 
stack.push(2); 
stack.push(3); 
// 取出栈 
int x = stack.pop(); // x = 3 
int y = stack.pop(); // y = 2 
int z = stack.pop(); // z = 1  

Java Stack 类

Java Stack 类

栈是Vector的一个子类,它实现了一个标准的后进先出的栈。

堆栈只定义了默认构造函数,用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。

Stack()

除了由Vector定义的所有方法,自己也定义了一些方法:

序号 方法描述
1 boolean empty() 
测试堆栈是否为空。
2 Object peek( )
查看堆栈顶部的对象,但不从堆栈中移除它。
3 Object pop( )
移除堆栈顶部的对象,并作为此函数的值返回该对象。
4 Object push(Object element)
把项压入堆栈顶部。
5 int search(Object element)
返回对象在堆栈中的位置,以 1 为基数。

实例

下面的程序说明这个集合所支持的几种方法

import java.util.*;

public class StackDemo {

   static void showpush(Stack st, int a) {
      st.push(new Integer(a));
      System.out.println("push(" + a + ")");
      System.out.println("stack: " + st);
   }

   static void showpop(Stack st) {
      System.out.print("pop -> ");
      Integer a = (Integer) st.pop();
      System.out.println(a);
      System.out.println("stack: " + st);
   }

   public static void main(String args[]) {
      Stack st = new Stack();
      System.out.println("stack: " + st);
      showpush(st, 42);
      showpush(st, 66);
      showpush(st, 99);
      showpop(st);
      showpop(st);
      showpop(st);
      try {
         showpop(st);
      } catch (EmptyStackException e) {
         System.out.println("empty stack");
      }
   }
}

以上实例编译运行结果如下:

stack: [ ]
push(42)
stack: [42]
push(66)
stack: [42, 66]
push(99)
stack: [42, 66, 99]
pop -> 99
stack: [42, 66]
pop -> 66
stack: [42]
pop -> 42
stack: [ ]
pop -> empty stack
阅读全文
以上是名动网为你收集整理的javastack类用哪种类代替 Java Stack 类全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 名动网 mdwl.vip 版权所有 联系我们