堆栈的使用

本文均为个人见解,如有误解,欢迎留言~~~

定义

栈(stack):是一种后进先出的数据结构,stack只能不断的往栈中压入数据(push),就像往瓶子里加糖,最后放进去的那颗最早被拿出(pop)。
队列(Queue):是先进先出的数据结构,最先进入碎裂的元素最早出队,就跟排队买饭一样,先排队先吃到饭。

方法

栈方法

方法解释
push把元素压入栈中
pop把栈顶的元素弹出
peek取栈顶元素但不弹出
empty判断栈是否为空
search查询某个对象在栈中的位置,以1为基准
add添加一个元素
addElement也是添加
addAll添加一组
       Stack<Integer> stack = new Stack();
       boolean empty = stack.empty();	//true
       stack.push(11);	//[11]
       stack.push(12);	//[11,12]
       stack.push(13);	//[11,12,13]
       boolean empty1 = stack.empty();	// false
       Integer peek = stack.peek();	//13
       Integer pop = stack.pop();	//13,但是栈中没有了13
       int search = stack.search(2);	//-1.因为栈中没有这个元素
       int search1 = stack.search(12);	//1,在第一位
       stack.add(10);	// size = 3,[11,12,10]
       stack.add(1,14);	// size = 4,[11,14,12,10]
       stack.addElement(15);	// size = 5,[11,14,12,10,15]

stack 扩展了Vactor
在这里插入图片描述

队列方法

详解:Deque继承了Queue ,为其子类

方法解释
offer往队列的加入元素,若超出队列容量限制,优先级高于以上方法
add往队列的加入元素,若没有可用空间,则抛出异常
poll取出并移除队列的头,若队为空,返回null
remove取出并移除队列的头,队列为空时,抛异常,移除的是元素,而不是指针
peek取出不移除,若队为空,返回null
element取出不移除,若队为空,抛异常
addfirst在队列的首位加入一个元素
addLast队列中在最后加入一个元素
pollFirst获取头元素,同理last
peekFirst获取头元素不移除,同理last
getfirst获取第一个,同理last
contains包含某个元素,返回boolean
clear清空整个队列

事例代码块:

		Deque<Integer> arrayDeque = new ArrayDeque<>(2);
        arrayDeque.add(10);
        arrayDeque.addLast(11);
        arrayDeque.addFirst(12);
        //添加元素
        boolean offer = arrayDeque.offer(13);
        boolean add = arrayDeque.add(14);//没有空间抛出异常

        //获取头,并移除
        Integer poll = arrayDeque.poll();//null
        Integer remove1 = arrayDeque.remove();//没有元素抛出异常
        boolean remove = arrayDeque.remove(1);//false
        boolean remove2 = arrayDeque.remove(10);//true

        //获取头不移除
        Integer peek1 = arrayDeque.peek();//null
        Integer element = arrayDeque.element();//没有元素抛出异常

		//包含某个元素
		boolean contains = arrayDeque.contains(13);//true

类之间关系图展示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值