Java Collection Framework中的堆栈类
堆栈类
堆栈类在java.util包中可用。
在Stack类是子类Vector类的。
众所周知,Stack是LIFO(后进先出)数据结构。
此处给出LIFO的上述观点意味着最后插入的元素将首先弹出。
堆栈类仅包含一个构造函数,即默认构造函数。
默认构造函数的语法如下:
Stack st = new Stack();
堆栈类定义了各种方法来执行各种任务到堆栈上。堆栈类方法的名称如下:
voidpush(Objectobj)
目的pop()
目的peek()
布尔值empty()
int搜索(对象obj)
现在,我们将看到上面给出的Stack方法的目的,并且我们将一一研究。
i)voidpush(Objectobj)
此方法用于将元素压入堆栈。
此方法在Stack方法中使用一个参数,该参数是要插入到Stack中的对象。
ii)对象pop()
此方法用于从堆栈中删除元素,然后返回到堆栈顶部。
此方法在Stack方法中不传递任何参数。
iii)布尔值empty()
此方法用于检查堆栈是否为空。
我们不会在Stack方法中将任何对象作为参数传递。
此方法的返回类型为Boolean,因此如果Stack为空,则返回true。
iv)对象peek()
此方法用于返回堆栈的顶部。
我们不会在Stack方法中将任何对象作为参数传递。
v)int搜索(Objectobj)
此方法用于将元素搜索到堆栈中。
我们仅将一个对象作为参数传递给Stack方法,而该参数是要在Stack中搜索的对象。
此方法的返回类型为int,因此,如果在堆栈中找到一个对象,则它从堆栈顶部返回偏移量或地址,否则,如果在堆栈上未找到对象,则返回-1。
示例
//Java程序来演示Stack的行为。 import java.util.*; class StackClass { public static void main(String[] args) { //创建一个Stack实例 Stack st = new Stack(); //通过使用push()将少量元素压入堆栈的方法 st.push(10); st.push(20); st.push(30); st.push(40); st.push(50); //显示当前堆栈 System.out.println("Current Stack List:" + st); //删除元素 //堆叠并返回堆叠顶部 System.out.println("The Popped Element:" + st.pop()); //通过使用peek()方法返回栈顶 System.out.println("The top of the Stack:" + st.peek()); //通过使用search()方法从堆栈中搜索元素 System.out.println("Search element is:" + st.search(30)); System.out.println("Search element not found:" + st.search(60)); } }
输出结果
E:\Programs>javac StackClass.java E:\Programs>java StackClass Current Stack List:[10, 20, 30, 40, 50] The Popped Element:50 The top of the Stack:40 Search element is:2 Search element not found:-1