我对Java非常陌生。我最近遇到了 fastutil 并发现了ObjectArrayList类。
如果使用ObjectArrayList而不是ArrayList,性能是否会有差异?使用ObjectArrayList的用例是什么?
答案 0 :(得分:3)
根据fastutil documentation
基于类型的基于数组的列表;提供了一些其他的使用多态性来避免装箱的方法。
在发生(un)boxing的情况下,fastutil的实现具有性能优势。
ObjectArrayList
由通用类型数组支持。尽管ArrayList
得到Object[]
的支持,但实际上两者之间的性能是正常的。但是,FWIW似乎该库提供了原始支持的数组IntArrayList
DoubleArrayList
,其中这些装箱声明实际上可以在大型数据集中看到明显的好处。
但是,如果您不熟悉Java。在寻求其他变体之前,我强烈建议您先熟悉java.util.ArrayList。在大多数情况下,采用标准会带来性能优势。
答案 1 :(得分:1)
当您开始学习一种新语言时,您不必担心表现。着重基础知识。编写运行的代码,然后编写有用的代码。仅当您编写的代码影响您周围的世界时(例如编写工作代码),速度和效率才重要。不用担心fastutil和ObjectArrayList。使用ArrayList完成您的应用程序,如果您的应用程序对您而言太慢,那么您应该更快地找到一些东西。