在用Java创建类时,我经常发现自己创建的实例级集合我提前知道的非常小 - 集合中少于10个项目.但我不知道提前的项目数量,所以我通常会选择动态集合(ArrayList,Vector等).
class Foo { ArrayListbars = new ArrayList (10); }
我的一部分一直在唠叨我,使用复杂的动态集合来处理这么小的东西是浪费的.是否有更好的方法来实现这样的事情?或者这是常态吗?
请注意,我没有遇到任何(明显的)性能损失或类似的事情.这只是我想知道是否有更好的方法来做事.
ArrayList
Java中的类只有两个数据成员,一个对Object[]
数组的引用和一个大小 - 如果你不使用它,你仍然需要它ArrayList
.因此,不使用a的唯一优势ArrayList
是保存一个对象分配,这不太可能是一个大问题.
如果您ArrayList
每秒都在创建和处理容器类的许多实例(以及扩展实例),那么垃圾收集流失可能会有一些问题 - 但是如果它发生的话就会担心.垃圾收集通常是您最不担心的问题.