根据不同的样式报告 Collection.toArray()
调用的用法,并建议应用首选样式。
将集合转换为数组有两种样式:
c.toArray(new String[c.size()])
c.toArray(new String[0])
在旧的 Java 版本中,建议使用预先确定大小的数组,因为创建适当大小的数组所需的反射调用非常慢。
不过,自 OpenJDK 6 的最新更新以来,该调用内在化,使得空数组版本的性能与预先确定大小的版本相同,有时甚至更高一筹。 此外,传递预先确定大小的数组对于并发集合或同步集合很危险,因为 size
和 toArray
调用之间可能会发生数据竞争。 如果在操作过程中并发收缩该集合,可能导致数组末尾出现额外的 null。
使用检查选项选择首选样式。