从ArrayList更改为Vector

我正在开发一款android游戏,我注意到由于onTouchEvent在UI线程上运行,并且更新/渲染方法从单独的线程运行,因此它们都会更新包含实体的ArrayList 。 如果他们碰巧在同一时间修改列表,显然他们会发生冲突。

我读过Vector类与ArrayList完全相同,唯一不同的是Vector是同步的,但它们不会发生冲突。 真的吗? 如果是这样,它是否有任何性能问题或我应该关注的问题? 我以前从未使用Vector类。

编辑:我的意思是从改变

ArrayList<Obj> list = new ArrayList<Obj>();

Vector<Obj> list = new Vector<Obj>()

但正如答案所述, Vector不推荐使用。 所选答案解决了我的问题。


这是oldie Vector尝试不使用Vector来代替使用

synchronizedList

示例:

list = Collections.synchronizedList(list);

矢量被认为是过时的和不赞成阅读为什么矢量考虑过时?


对于那些不得不与传统代码进行斗争的人,只需执行以下操作:

new Vector<Obj>(anyThingWhichImplemntsCollection);

List<Foo> list = new Vector<Foo>(new ArrayList<Foo>());  

应该管用。 这两个结构都实现了List接口。

但是和其他人一样,这不是推荐的。

链接地址: http://www.djcxy.com/p/76099.html

上一篇: Change from ArrayList to Vector

下一篇: Are Java Properties effectively deprecated?