Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ObjectArrayList优于ArrayList的首选用法_Java_Fastutil - Fatal编程技术网

Java ObjectArrayList优于ArrayList的首选用法

Java ObjectArrayList优于ArrayList的首选用法,java,fastutil,Java,Fastutil,我对Java非常陌生。我最近遇到了fastutil,发现了ObjectArrayList类 如果使用ObjectArrayList而不是ArrayList,性能会有什么不同吗?使用ObjectArrayList的用例有哪些?当您开始学习一门新语言时,不应该关心性能。关注基础。编写运行的代码,然后编写有用的代码。只有当您编写的代码影响到您周围的世界(例如为工作编写代码)时,速度和效率才重要。不要担心fastutil和ObjectArrayList。使用ArrayList完成你的应用程序,如果你的应

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


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

当您开始学习一门新语言时,不应该关心性能。关注基础。编写运行的代码,然后编写有用的代码。只有当您编写的代码影响到您周围的世界(例如为工作编写代码)时,速度和效率才重要。不要担心fastutil和ObjectArrayList。使用ArrayList完成你的应用程序,如果你的应用程序对你来说太慢,那么你应该找到更快的应用程序。

根据fastutil

基于类型特定数组的列表;提供一些使用多态性避免(取消)装箱的附加方法

在发生以下情况时,fastutil的实现具有性能优势

ObjectArrayList
由泛型类型数组支持。而
ArrayList
是由
Object[]
支持的,实际上,两者之间的性能是正常的。然而,FWIW看起来像是这个库提供了原始支持的数组
IntArrayList
DoubleArrayList
,这些装箱声明实际上可以在大型数据集中看到明显的好处


但是,如果您是Java新手。我强烈建议在寻找其他变体之前先熟悉它。在大多数情况下,采用标准比性能优势更重要。

不过,这似乎是一个虚假的说法。你能举一个例子说明ArrayList会使用装箱,而ObjectArrayList不会使用装箱的情况吗。。。不能使用基元创建ArrayList<代码>阵列列表。。。这意味着list.add(1)将别无选择,只能自动装箱。我还没有仔细阅读源代码和参考他们的文档。所以这个声明当然可能是假的,但同样的规则也适用于ObjectArrayList。谢谢各位的回复。但是我真的在看fastutils可能做的任何特别的事情,因为ArrayList已经存在了。更新的答案回答了ObjectArrayList和ArrayList之间的差异我有使用Java的语言限制。而且我处理的时间预算非常有限——在150微秒之内。无论如何,我都在使用基准测试工具(比如JMH)对其进行评估,但我想知道是否有人知道fastutil将推出自己版本的ArrayList的原因