我对 Java 很陌生。我最近遇到了fastutil并找到了 ObjectArrayList 类。
如果使用 ObjectArrayList 而不是 ArrayList,性能会有什么不同吗?使用 ObjectArrayList 的用例有哪些?
根据 fastutil文档
一个特定类型的基于数组的列表;提供了一些使用多态性来避免(取消)装箱的附加方法。
在发生(取消)装箱的情况下,fastutil 的实现具有性能优势。
由ObjectArrayList
泛型类型数组支持。而一个ArrayList
由Object[]
真正的支持,两者之间的表现将是名义上的。然而 FWIW,看起来这个库提供了原始的支持数组IntArrayList
DoubleArrayList
,这些装箱声明实际上会在大型数据集中看到明显的好处。
但是,如果您是 Java 新手。我强烈建议在寻找其他变体之前先熟悉java.util.ArrayList 。在大多数情况下,采用标准比性能优势更重要。
当你开始学习一门新语言时,你不应该关心性能。专注于基础知识。编写运行的代码,然后编写有用的代码。只有当您编写的代码影响到您周围的世界(例如为工作编写代码)时,速度和效率才重要。不要担心 fastutil 和 ObjectArrayList。使用 ArrayList 完成您的应用程序,如果您的应用程序对您来说太慢,那么您应该找到更快的东西。