【发布时间】:2010-09-15 12:04:42
【问题描述】:
假设我有一个 ArrayList
ArrayList<MyClass> myList;
我想调用toArray,是否有性能原因使用
MyClass[] arr = myList.toArray(new MyClass[myList.size()]);
结束
MyClass[] arr = myList.toArray(new MyClass[0]);
?
我更喜欢第二种风格,因为它不那么冗长,而且我假设编译器会确保不会真正创建空数组,但我一直想知道这是不是真的。
当然,在 99% 的情况下,它不会以某种方式产生影响,但我希望在我的正常代码和优化的内部循环之间保持一致的风格......
【问题讨论】:
-
看起来这个问题已经在 Aleksey Shipilёv 的新博文中得到了解决,Arrays of Wisdom of the Ancients!
-
来自博文:“底线:toArray(new T[0]) 似乎更快、更安全、合同更简洁,因此现在应该是默认选择。”
标签: java performance coding-style