非多线程应用程序中的向量使用

时间:2012-04-18 04:52:55

标签: java collections

Vector vs Arraylist(在非多线程环境中) - 我们将使用Vector(而不是ArrayList)的要求 我知道的一个问题是:如果矢量大小增加100%并且ArrayList 50%

,则必须动态增加集合的大小并且非常频繁地增加集合的大小

2 个答案:

答案 0 :(得分:1)

我认为你不应该使用vector,因为你必须syncronized(also non-threaded environment) ,So Use ArrayList

Vector是每个操作同步的,不要整个操作.....并且它也被弃用了... Why is Java Vector class considered obsolete or deprecated?

答案 1 :(得分:0)

在单线程环境中,永远不要用户Vector。它的方法是“同步的”,这使得它对ArrayList慢,非常慢。

因此,如果ensureCapacity行为不同,并且Vector将大小增加2,则每个操作的成本都无法与ArrayList操作的成本进行比较,即更快。