最轻量级的Java集合

Kei*_*son 5 java collections optimization

如果我要创建一个Java Collection中,只想与元素来填充它,然后遍历它(不知道所需的大小事前),即所有我需要的是Collection<E>.add(E)Collection<E>.iterator(),其具体类,我应该选择?例如,使用a Set而不是a 是否有任何优势List?哪一个开销最小?

aio*_*obe 22

我应该选择哪个具体课程?

我可能会选择一个ArrayList或一个LinkedList.两者都支持additerator方法,并且它们的更新有任何可观的开销.

例如,使用Set而不是List是否有任何优势?

不,我不会这么说.(除非你依赖于元素的顺序,在这种情况下你必须使用List,或者想要禁止重复,在这种情况下你应该使用Set.)

(我没有看到任何Set实现如何击败add/iterator方法的列表实现,所以即使我不关心顺序,我也可能会使用List.)

哪一个开销最小?

这听起来像微基准测试,但是如果我被迫猜测,我会说ArrayList(或者说在链接的情况下,在ArrayLists需要经常重新分配内存的情况下使用LinkedList :-)

  • 根据大小,ArrayList通常具有更高的内存和性能 (5认同)