我对Java非常陌生。我最近遇到了fastutil,发现了ObjectArrayList类。

如果使用ObjectArrayList而不是ArrayList,性能会有所不同吗?使用ObjectArrayList有哪些用例?

最佳答案

根据fastutil documentation


  基于类型的数组列表;提供了一些其他的使用多态性来避免装箱的方法。


(un)boxing发生的情况下,fastutil的实现具有性能优势。

ObjectArrayList由通用类型数组支持。而ArrayListObject[]支持,实际上两者之间的性能是正常的。但是FWIW看起来像该库提供了原始支持的数组IntArrayList DoubleArrayList,其中这些装箱声明实际上在大型数据集中会看到明显的好处。

但是,如果您不熟悉Java。我强烈建议您在寻求其他变体之前先熟悉java.util.ArrayList。在大多数情况下,采用标准比性能优势更为重要。

10-05 21:13