Я делаю программу на Java, на которой шар отскакивает на экране. Пользователь может добавлять другие шары, и все они отскакивают друг от друга. Мой вопрос заключается в хранении добавленных шаров. На данный момент я использую ArrayList для их хранения, и каждый раз при нажатии пробела создается новый класс шаров и добавляется в список массивов. Это самый эффективный способ сделать что-то? Я не указываю размер списка массивов в начале, так что неэффективно распределять новое пространство в массиве каждый раз, когда пользователь хочет новый шар, даже если счет шара встанет в сотни? Есть ли другой класс, который я мог бы использовать, чтобы справиться с этим более эффективно?Эффективность ArrayList
Спасибо!
EDIT:
К сожалению, я должен был быть более ясным. Я повторяю шары каждые 30 миллисекунд, используя вложенные для циклов, чтобы увидеть, пересекаются ли они друг с другом. Я получаю доступ к одному шару чаще всего (мяч, который пользователь может контролировать с помощью клавиш со стрелками, еще одна особенность игры), но пользователь может выбрать переключатель шаров управления. Шары никогда не удаляются. Итак, я выполняю довольно сложные вычисления (я использую свой собственный векторный класс, чтобы перемещать их друг от друга при каждом столкновении) на шарах очень часто.
Вы когда-нибудь снимали шарики? Вам нужно периодически перебирать все шары? Вам нужно часто находить определенный шар? Какая структура данных используется, зависит от того, как вы будете использовать данные. –
Я согласен с @TeresaCarrigan, дополнительная информация поможет определить, что означает «эффективный». – Whymarrh
Кроме того, что касается эффективности 'ArrayList's: [Геометрическое расширение динамических массивов] (https://en.wikipedia.org/wiki/Dynamic_array#Geometric_expansion_and_amortized_cost). – Whymarrh