我想要一个可调整大小的
我已经将此对象实现为大小为21的
这似乎是一个简单的实现,但Java是否已经有内置类型来处理这种情况?我想象这样的需求非常普遍。我尝试使用
byte
列表对象,实现以下接口:
- 获取当前大小
- 清空列表(将大小重置为零)
- 在末尾添加
byte
- 从末尾删除
byte
- 通过索引获取任何元素的值
我已经将此对象实现为大小为21的
byte[]
数组和一个int
,它给出了下一个未填充元素的索引,并且使用它取得了巨大成功。这似乎是一个简单的实现,但Java是否已经有内置类型来处理这种情况?我想象这样的需求非常普遍。我尝试使用
ArrayList<Byte>
,但速度非常慢,我的运行时间随着迭代呈指数级增长。我是否正在遭受装箱/拆箱性能损失?应该使用哪种内置类型作为我的基本可调整大小的列表?
LinkedList<Byte>
怎么样?对于前四个条款来说,它是最好的选择。 - Andrew TobilkoArrayList<Byte>
很慢,我无法想象LinkedList<Byte>
会更好。 - T.J. Crowderjava.nio.ByteBuffer
。 - JesperArrayList
在末尾添加元素的摊销成本虽然比不上LinkedList
的O(n),但由于其O(1)的索引访问,因此更加值得使用。 - user2390182