linkedList

list接口的链接列表实现。

在阅读api文档时,遇到了以下一些难以理解的名词,之前未曾接触过它们:堆栈、队列、双端队列

堆栈:
“堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除”。(百度百科)

从上面的一段话中我们可以知道:
*堆和栈是两种不同的数据结构
*堆和栈都是有序的,那么是否可以使用索引呢?
*只能在栈顶对数据进行插入和删除。

堆栈——子弹弹夹,先装入的子弹后出弹夹。

“堆栈中的物体具有一个特性: 最后一个放入堆栈中的物体总是被最先拿出来, 这个特性通常称为后进先出(LIFO)队列。”

“ 堆栈中定义了一些操作。 两个最重要的是PUSHPOP。 PUSH操作在堆栈的顶部加入一 个元素。POP操作相反, 在堆栈顶部移去一个元素, 并将堆栈的大小减一。”

其实,这两个操作的名字就是源自弹夹模型。

“栈(stack)与堆(heap)都是Java用来在内存中存放数据的地方。”

“Java自动管理栈和堆。”

“栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。”

栈是一种能够实现快速读取的数据结构,比堆要块。java如何高效利用栈的快速读取特性呢?

“存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据在多个线程或者多个栈之间是不可以共享的,但是在栈内部多个值相等的变量是可以指向一个地址的。”

“堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。”

堆比较灵活,但是存取速度慢;栈相对不够灵活,但是存取速度快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值