java相关-栈

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());
    }


}

------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值