Stack继承于Vector,Stack是栈,它包含Vector中的全部API
Stack是通过数组实现的,而非链表
特性是FILO:first in last out
入栈和出栈都是对栈顶元素而言
Stack只有一个默认构造函数
Stack()
Stack实际上也是通过数组去实现的。
执行push时(即,将元素推入栈中),是通过将元素追加的数组的末尾中。
执行peek时(即,取出栈顶元素,不执行删除),是返回数组末尾的元素。
执行pop时(即,取出栈顶元素,并将该元素从栈中删除),是取出数组末尾的元素,然后将该元素从数组中删除。
Stack继承于Vector,意味着Vector拥有的属性和功能,Stack都拥有。
代码:
package day19; /* Stack继承于Vector,Stack是栈,它包含Vector中的全部API Stack是通过数组实现的,而非链表 特性是FILO:first in last out 入栈和出栈都是对栈顶元素而言 Stack只有一个默认构造函数 Stack() * */ import org.junit.Test; import java.util.Stack; public class Demo4 { @Test public void test1(){ //模拟栈操作 Stack<String> stack = new Stack<>(); stack.push("贾宝玉"); stack.push("贾珠"); stack.push("贾环"); System.out.println(stack);//[贾宝玉, 贾珠, 贾环] int index = stack.search("贾宝玉"); System.out.println(index);//3 String p1 = stack.peek(); System.out.println(p1);//贾环 System.out.println(stack);//[贾宝玉, 贾珠, 贾环] //弹栈 String popString = stack.pop(); System.out.println(popString);//贾环 System.out.println(stack);//[贾宝玉, 贾珠] String p2 = stack.peek(); System.out.println(p2);//贾珠 int indexs = stack.search("贾宝玉"); System.out.println(indexs);//2 boolean isEmpty = stack.empty(); System.out.println(isEmpty);//false } }