在Android上将集合转换为数组的最快方法是什么?

时间:2018-10-08 20:46:51

标签: java android collections

在Java中,很长一段时间以来,当您想要将Collection转换为数组时,您可以执行以下操作:coll.toArray(new ItemObject[coll.size()])。但是,在Android Studio中,我收到了警告。这是Android Studio提供的警告说明的全文:

  

有两种样式可以将集合转换为数组:   预定大小的数组(例如c.toArray(new String[c.size()]))或使用   空数组(如c.toArray(new String[0])。在较旧的Java版本中   建议使用预大小的数组,因为反射调用是   创建适当大小的数组所必需的速度非常慢。然而   自从OpenJDK 6的最新更新以来,此调用引起了人们的注意,   空数组版本的性能相同,有时甚至   比预大小版本更好。还通过了预尺寸   数组对于并发或同步集合是危险的,因为   在size和toArray调用之间可能发生数据争夺   如果集合是,则在数组末尾产生额外的null   在手术过程中同时缩小。该检查允许   遵循统一的样式:使用空数组(即   建议在现代Java中使用)或使用预定大小的数组(可能是   在较旧的Java版本或非基于HotSpot的JVM中更快。

但是,这种解释仅考虑Java虚拟机HotSpot,因此我想知道:此警告是否也适用于Android?上面提到的那些改进是否也得以实施?在Android上将集合转换为数组的最快方法是什么?

编辑:我知道现在没什么大不了的,但我仍然想知道。 =)

0 个答案:

没有答案