package com.company;
import java.util.Stack;
/**
* 1.新建栈实例
* 2.逐个压入元素到栈中 push(值)
* 3.求栈的深度 size()
* 4.根据索引取栈元素--先入栈的元素索引为1 get(index)
* 5.判断栈是否为空 isEmpty()
* 6.搜索某个值在栈中的位置--距离栈顶的位置,栈顶第一个元素位置为1 search(值)
* 7.弹出栈顶元素,但不删除 peek()
* 8.弹出栈顶元素,且删除 pop()
* 9.判断栈中是否包含某值 contain(值)
* 10.清空栈元素 clear()
*/
public class TestStack {
public static void main(String[] args) {
Stack<Integer> stack=new Stack<>();//栈里可以放任意包装类
//压入元素到栈中
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
//计算栈的深度
System.out.println("栈的深度为:"+stack.size());
//打印栈元素
String val="";
for(int i=0;i<stack.size();i++){
val=val+String.valueOf(stack.get(i))+" ";//此处打印的时候,栈的第一个位置索引为0,最先压入的数据存在第一个位置。
}
System.out.println("栈内所有元素为:"+val);
//取值:根据索引取
Integer value=stack.get(1);
System.out.println("索引位置为1的值为:"+value);
//判断栈是否为空
Boolean isEmpty=stack.isEmpty();
System.out.println("栈是否为空:"+isEmpty);
//搜索某个值在栈中的位置
int index=stack.search((Object)4);//搜索元素item在栈中的位置(从栈顶开始),如果找到则返回其距离栈顶的位置(栈顶为1),如果未找到则返回-1。
System.out.println("栈中值为4的位置为"+index);//此处不是索引,而是size-索引的值。例如:此处size为4,4的索引为3,则位置为4-3=1
//弹出栈顶元素,但不删除
System.out.println(stack.peek());
//打印栈元素
String val2="";
for(int i=0;i<stack.size();i++){
val2=val2+String.valueOf(stack.get(i))+" ";//此处打印的时候,栈的第一个位置索引为0,最先压入的数据存在第一个位置。
}
System.out.println("栈内所有元素为:"+val2);
//弹出栈顶元素,且删除
System.out.println(stack.pop());
//打印栈元素
String val3="";
for(int i=0;i<stack.size();i++){
val3=val3+String.valueOf(stack.get(i))+" ";//此处打印的时候,栈的第一个位置索引为0,最先压入的数据存在第一个位置。
}
System.out.println("栈内所有元素为:"+val3);
//判断栈中是否包含某个值
System.out.println("栈中是否包含3:"+stack.contains((Object)3));
//清空栈内容
stack.clear();
System.out.println(stack.empty());
}
}
------