java中如何为堆栈和队列分配内存
我们知道ArrayList使用动态数组存储数据。LinkedList使用链表存储数据。因此,对于这两种情况,我们都知道在添加或删除新元素(内存方面)时它是如何工作的。现在,类似地,在java中如何为堆栈或队列分配内存。在内存级别,当我向堆栈或队列添加/删除元素时会发生什么情况。java中如何为堆栈和队列分配内存,java,data-structures,collections,Java,Data Structures,Collections,我们知道ArrayList使用动态数组存储数据。LinkedList使用链表存储数据。因此,对于这两种情况,我们都知道在添加或删除新元素(内存方面)时它是如何工作的。现在,类似地,在java中如何为堆栈或队列分配内存。在内存级别,当我向堆栈或队列添加/删除元素时会发生什么情况。java.util.Stack是java.util.Vector的子类,它只是一个数组。现在,java.util.Queue是一个接口,有多种实现,分为两大类: 有界-由固定大小的基础数组支持。一个常见的例子是ArrayB
java.util.Stack
是java.util.Vector
的子类,它只是一个数组。现在,java.util.Queue
是一个接口,有多种实现,分为两大类:
ArrayBlockingQueue
LinkedBlockingQueue
请检查文档和好吧,
队列
是一个接口,所以没有什么好说的。有很多实现和不同的行为。无论如何,例如,ArrayBlockingQueue
的内存分配类似于ArrayList
。无论如何,有两个主要组(有界和无界),但这实际上取决于您选择的实现
关于Stack
,内存分配也与ArrayList
非常相似,因为它是Vector
的一个子类,由数组支持