Я работаю над игрой для Android, и я только заметил, что с onTouchEvent
работает в потоке пользовательского интерфейса, а методы update/render запускаются из отдельных потоков, причем оба из них обновляют ArrayList
, который содержит сущности. Поэтому очевидно, что они конфликтуют, если они могут изменить список одновременно.Переход от ArrayList к вектору
Я читал, что класс Vector
используется точно так же, как ArrayList
с той лишь разницей, что синхронизирован Vector
, ergo они не конфликтуют. Это правда? если да, имеет ли он какие-либо проблемы с производительностью или что-то, о чем я должен беспокоиться? Раньше я никогда не использовал класс Vector
.
EDIT: , что я на самом деле имел в виду переход от
ArrayList<Obj> list = new ArrayList<Obj>();
в
Vector<Obj> list = new Vector<Obj>()
Но, как говорят ответы, Vector
не рекомендуется использовать. Выбранный ответ решил мою проблему.
'VECTOR' устарела, так что вы не должны использовать его – BackSlash
Технически это не так, но на самом деле это древний и в зависимости от использование случая «Список» из пакета «Concurrent», вероятно, будет лучше. –
Jon Skeet объясняет, почему не использовать Vector здесь: http://stackoverflow.com/q/1386275/1065197 –