我只是想使用一个集合,它按照我过去添加它们的顺序给我项目,并且也是同步的。当然我想动态添加 - 删除项目。我对Java的许多集合感到困惑。如果有人知道答案,请告诉我。
答案 0 :(得分:5)
好吧,Vector
有你要求的两个属性......但说实话,我没有发现正在同步的集合实际上是有用的。我发现将单个操作同步化很少有用 - 而是要在一整套操作上进行同步,例如迭代整个集合。
但是,无论出于何种原因,你真的想要一个集合,其中每个操作都是单独同步的,Vector
就可以了。
或者您可以使用ArrayList
并使用Collections.synchronizedList
创建同步包装。
答案 1 :(得分:0)
ConcurrentLinkedDeque怎么样? http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentLinkedDeque.html
它完全同步并提供队列所需的FIFO顺序。