栈和队列

本文探讨了栈的两种实现方式:顺序栈与链栈,对比了它们的空间利用率,并介绍了Java中队列的多种实现形式,包括ArrayBlockingQueue、LinkBlockingQueue等线程安全队列。
栈的实现有两种:顺序栈和链栈
    由于栈不需要实现随机存取功能,只需要从栈顶插入、删除元素,因此顺序就够所提供的高效存取就没有太大的价值,即使采用链式结构的实现,程序同样可以高效的出入栈。
    对于链栈而言,底层链式结构只需要保存几个节点,每个节点需要额外添加一个next引用,会引起部分空间浪费;但对于顺序栈来说,程序开始就需要在底层开辟一块连续的内存,这种空间浪费更多。从空间利用率的角度来看,链栈的空间利用率比顺序栈的空间利用率高一些。

队列:
    Java提供了Queue的接口,并实现了众多的类,常用的有:ArrayBlockingQueue、LinkBlockingQueue和ConcurrentLinkQueue,它们都是线程安全的队列。还提供了一个双向队列(Deque)接口,既可以当队列使用,也可以放栈使用,JDK提供了ArrayDeque、LinkBlockingDeque和LinkList三个实现类,对于栈,已经不再推荐使用Stack而用Deque代替了。LinkList是一个功能非常强大的集合类但性能可能比不上ArrayDeque和ArrayList。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值