我对Java非常陌生。我最近遇到了fastutil,发现了ObjectArrayList类。
如果使用ObjectArrayList而不是ArrayList,性能会有所不同吗?使用ObjectArrayList有哪些用例?
最佳答案
根据fastutil documentation
基于类型的数组列表;提供了一些其他的使用多态性来避免装箱的方法。
在(un)boxing发生的情况下,fastutil的实现具有性能优势。ObjectArrayList
由通用类型数组支持。而ArrayList
由Object[]
支持,实际上两者之间的性能是正常的。但是FWIW看起来像该库提供了原始支持的数组IntArrayList
DoubleArrayList
,其中这些装箱声明实际上在大型数据集中会看到明显的好处。
但是,如果您不熟悉Java。我强烈建议您在寻求其他变体之前先熟悉java.util.ArrayList。在大多数情况下,采用标准比性能优势更为重要。