首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中使用小(1-10项)实例级集合

在Java中使用小(1-10项)实例级集合
EN

Stack Overflow用户
提问于 2008-09-11 17:33:41
回答 4查看 567关注 0票数 6

在Java中创建类时,我经常发现自己创建的实例级集合非常小--在集合中少于10项。但我事先不知道项目的数量,所以我通常选择动态集合(ArrayList、Vector等)。

代码语言:javascript
复制
class Foo
{
  ArrayList<Bar> bars = new ArrayList<Bar>(10);
}

我的一部分一直在抱怨,对于这么小的东西,使用复杂的动态集合是浪费的。有没有更好的方法来实现这样的东西呢?或者这是常态吗?

请注意,我没有受到任何(明显的)性能损失或类似的影响。这只是我在想,是否有更好的方法来做事情。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-09-11 17:49:00

Java语言中的ArrayList类只有两个数据成员,一个是对Object[]数组的引用,另一个是大小-如果不使用ArrayList,无论如何都需要这个成员。因此,不使用ArrayList的唯一好处是节省一个对象分配,这不太可能是一个大问题。

如果您每秒都在创建和处理容器类(以及ArrayList实例)的许多实例,那么您可能会遇到一点垃圾收集问题--但如果发生这种情况,就需要担心。垃圾收集通常是您最不担心的问题。

票数 10
EN

Stack Overflow用户

发布于 2008-09-11 18:03:40

为了简单起见,我认为这几乎不是问题。您的实现足够灵活,如果将来需求发生变化,您不会被迫进行重构。此外,考虑到您的小数据集和Java Collection API的高质量,向混合解决方案的代码中添加更多逻辑是不值得的。

票数 3
EN

Stack Overflow用户

发布于 2008-09-11 18:57:58

Google Collections具有针对不可变/少量元素进行优化的集合。以Lists.asList接口为例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档