如何在Java

我们知道ArrayList使用动态数组来存储数据。 LinkedList使用链表存储数据。因此,对于这两种情况,我们都知道在添加或删除新元素时它是如何工作的(在内存方面)。现在类似地,如何在Java中为堆栈或队列分配内存。当我在堆栈或队列中添加元素或从中删除元素时,在内存级别会发生什么情况。

yifei86935 回答:如何在Java

嗯,Queue是一个接口,因此无需多说。有很多实现和不同的行为。无论如何,例如ArrayBlockingQueue的内存分配类似于ArrayList。无论如何,有两个主要组(有界和无界),但这实际上取决于您选择的实现。

关于Stack,内存分配也与ArrayList非常相似,因为它是Vector的子类,并且由数组支持。

,

java.util.Stackjava.util.Vector的子类,它只是一个数组。现在java.util.Queue是一个接口,具有各种实现,分为两个主要类别:

  1. 有界-由固定大小的基础数组支持。一个常见的例子是ArrayBlockingQueue
  2. 无界-由链表支持,因此从理论上讲是无限的。一个常见的例子是LinkedBlockingQueue

请检查StackQueue的文档

本文链接:https://www.f2er.com/3142365.html

大家都在问