私はアンドロイドのゲームで作業していますが、onTouchEvent
がUIスレッドで実行されており、更新/レンダリングのメソッドが個別のスレッドから実行されていることに気がつきました。両方ともArrayList
エンティティ。彼らが同時にリストを変更した場合、明らかに衝突します。ArrayListからVectorに変更する
Vector
クラスはArrayList
と全く同じように使用されていますが、Vector
は同期していますが、それらは競合しません。本当?もしそうなら、それは私が心配しなければならないパフォーマンス上の問題または何かを持っていますか?私は前にVector
クラスを使ったことがありません。
編集:私は実際に意味することは
Vector<Obj> list = new Vector<Obj>()
へ
ArrayList<Obj> list = new ArrayList<Obj>();
からの変更はしましたが、答えが言うように、Vector
が使用することをお勧めしません。選択された回答が私の問題を解決しました。
あなたは – BackSlash
技術的にそれはないですが、本当にそれは古代とに応じて、だ、それを使うべきではありませんので、 'Vector'が、廃止されました'Concurrent'パッケージの' List'が多分もっと良くなるでしょう。 –
Jon SkeetはここでVectorを使わない理由を説明しています:http://stackoverflow.com/q/1386275/1065197 –